henrichg / PhoneProfilesPlus

Profile manager for Android - event triggered
Apache License 2.0
423 stars 32 forks source link

Enabling Wi-Fi causes a system prompt with no option to remember the setting #116

Closed emayevski closed 1 year ago

emayevski commented 1 year ago

After migrating to a new Sony 5 V device from Samsung S20 I have noticed the nasty behavior (of the system) - when a profile is enabled by Activator that turns Wi-Fi on, the system prompt appears, asking me if I want to let the application enable Wi-Fi . The prompt has two buttons (allow/deny) but doesn't let me save the choice for the future and doesn't remember my choice the next time. Of course, this prompt goes away after some time, so if the phone is in the pocket, wi-fi doesn't gets turned on. This is a big problem because mobile data cost money.

I dug the information a bit and found the following discussion: https://issuetracker.google.com/issues/128554616 . It seems that PhoneProfilesPlus uses a "modern" mechanism that is supposed to work correctly (and probably does on Samsung as I don't have this nasty popup there). Yet, the discussion states that the old mechanism with a setWifiEnabled call is still available for apps compiled with targetSdk < 29. Play Store will deny such an application, though.

My question is that maybe, it is possible to put this deprecated call as an optional way to turn on the WiFi to PhoneProfilesPlusExtender and use it instead of the modern one?

henrichg commented 1 year ago

PPP has target sdk 28. Is not deployed in Google Play for this reason. And uses wifiManager.setWifiEnabled(isWifiEnabled);

For Sony PPP displays this: \"Wi-Fi control\" special access must NOT be allowed for Sony devices.\n\nIn device Settings disable \"Apps\"/\"Special app access\"/\"Wi-Fi control\" for PhoneProfilesPlus.

It is in PPP Settings/Permissions.

emayevski commented 1 year ago

For Sony PPP displays this: "Wi-Fi control" special access must NOT be allowed for Sony devices.\n\nIn device Settings disable "Apps"/"Special app access"/"Wi-Fi control" for PhoneProfilesPlus. It is in PPP Settings/Permissions.

Nope, the application shows "must be allowed" there (I have Slovak interface on the device, but I can make a screenshot if you need one). Moreover, if I remove the permissions, WiFi cannot be switched at all (neither on or off), while with the permission enabled, PPP seems to turn wifi off correctly and turning wifi on shows a prompt (if I manage to confirm enabling, it then works).

If I can be of any use to you in testing the code, please let me know - I have the tools installed, although the device is not rooted.

henrichg commented 1 year ago

Ked som toto riesil u ineho uzivatela so Sony, napisal mi, ze to NESMIE byt povolene. Asi ten speci retazec pre Sony som pridal po verzii 6.2. Este to nie je vonku.

V sk preklade mam: Špeciálny prístup \"Ovládanie Wi-Fi\" NESMIE byť povolený pre zariadenia Sony.\n\nV nastaveniach zariadenia zakážte \"Aplikácie\"/\"Špeciálny prístup aplikácií\"/\"Ovládanie Wi-Fi\" pre PhoneProfilesPlus.

Ak to vypnutie tohoto special pristupu zablokuje prepinanie wifi, tak potom neviem co u toho uizvatela predtym. Mozno mal starsi firmware, inu Android verziu. Aku mate vy Android verziu v Sony?

henrichg commented 1 year ago

Mne sa to aj zdalo byt divne, ze to ma byt nepovolene. Som si pomyslel: chyba vo firmware. :-)

emayevski commented 1 year ago

V sk preklade mam: Špeciálny prístup "Ovládanie Wi-Fi" NESMIE byť povolený pre zariadenia Sony.\n\nV nastaveniach zariadenia zakážte "Aplikácie"/"Špeciálny prístup aplikácií"/"Ovládanie Wi-Fi" pre PhoneProfilesPlus.

Rozumiem, ale mám tam "musí byť povolený".

Ak to vypnutie tohoto special pristupu zablokuje prepinanie wifi, tak potom neviem co u toho uizvatela predtym. Mozno mal starsi firmware, inu Android verziu. Aku mate vy Android verziu v Sony?

Verzia Androidu 13, Jadro 5.15.74-android13- ... , Číslo zostavy 67.0.A.6.60.

henrichg commented 1 year ago

Ano mate tam, ze "musi", ale ako som pisal, este nie je v aktualnej verzii uprava speci pre Sony.

Priznam sa, ze vam neviem pomoct. Je to vec Sony, nie PPP. Pokial v mobile nemate ine nastavenia, napriklad v Developer options, okolo toho, tak sa s tym neda nic robit. Skusali ste hladat pre Sony ako sa s tym vyrovnava Tasker, Macrodorid, Automate a podobne?

emayevski commented 1 year ago

Nie, ešte som neišiel hľadať iné appky, iba že som začal hľadaním v google, a som našiel tento issue s deprecated setting . Pozriem, ako tieto iné appky spravujú wi-fi, dám vedieť.

henrichg commented 1 year ago

To issue sa tyka Android 14. :-) A ano setWifiEnabled() je deprecated, ale kedze PPP je s target sdk 28, tak pre neho deprecated nie je.

emayevski commented 1 year ago

Je to zaujímave. Vyzerá to tak že to je Sony, ktorá si pýta povolenie zapnúť Wi-Fi. Makrodroid ktorý funguje cez helper app a starý API, takisto nemôže zapnúť Wi-Fi ticho, bez okna. Automate vôbec neprepína Wi-Fi, ani z dodatočnou appkou.

V issuetracker'e v komentároch k [128554616] písali o nejakom novom API pre toto prepínanie. Je možne, že ono bude fungovať správne?

henrichg commented 1 year ago

Neviem o akom novom API pisali. Viete ma nalinkovat ku konkretnemu prispevku?

Ale asi to bude problem. Ak to API vyzaduje target sk > 28, tak to bude nemozne implementovat v PPP. PPP nemoze ist vyssie ako je (28). Od Android 10 (29) je uz tolko restrikcii pre taketo aplikacie ako PPP, ze som sa proste rozhodol vyssie v target sdk neist.

emayevski commented 1 year ago

Neviem o akom novom API pisali. Viete ma nalinkovat ku konkretnemu prispevku?

https://issuetracker.google.com/issues/128554616#comment17

Píšu tam o dvoch API.

Ale asi to bude problem. Ak to API vyzaduje target sk > 28, tak to bude nemozne implementovat v PPP. PPP nemoze ist vyssie ako je (28). Od Android 10 (29) je uz tolko restrikcii pre taketo aplikacie ako PPP, ze som sa proste rozhodol vyssie v target sdk neist.

Toto je už ľahší problém - bolo by možne užívať externú aplikáciu na prepnutie Wi-Fi, a spúšťať ju pri zapínaní profilu.

henrichg commented 1 year ago

Cize dalsiu apku? :-) Len kvoli wi-fi on/off? Macrodroid ma helper apku, ale tam prave nastavuju nizsie target sdk ako 29. Nie vyssiu. Cize nieco ako PPP Extender. Ten tiez je v nizsom target ako PPP, 27.

Pozeram to issue a ani jedno z toho nie je bez nutnosti zasahu uzvatela (potvrdenie). Vzdy sa zobrazuje daky dialog. A to je uplne nanic.

emayevski commented 1 year ago

Myslím, že možno tieto API dávajú používateľovi možnosť uložiť svoj výber na budúce aj nepýtať ho opakovane. Skúsim cez víkend urobiť testovú appku a skontrolovať túto možnosť.

henrichg commented 1 year ago

Sice tomu neverim, ze si to pamataju a viac nepytaju, ale skuste. Diik moc.

henrichg commented 1 year ago

Ako? Skusili ste?

emayevski commented 1 year ago

Nie - zle som prečítal popis v https://issuetracker.google.com/issues/128554616#comment17 a som myslel, že mám skúsiť intenty. Ale tie intenty sú pre manuálnu aktiváciu (vyber) Wi-Fi. Namiesto toho potrebujem skúsiť WifiNetworkSpecifier a WifiNetworkSuggestion. Urobím toto možno tento týždeň.

emayevski commented 1 year ago

Skúsil som využiť WiFiNetworkSpecifier. Tento spôsob funguje pre pripojenie k uvedenej sieti ak je Wi-Fi zapnutý; a funguje správne. Ale keď Wi-Fi bol vypnutý, nič sa nerobí - sieť nie je dostupná (spustí sa metód ConnectivityManager.NetworkCallback.onUnavailable ) . Myslím, že spôsob s WifiNetworkSuggestion bude fungovať v princípe rovnako. T.j. zapnúť Wi-Fi z kódu "legálne" už nie je možne (iba cez ten starý deprecated spôsob).

henrichg commented 1 year ago

Hm, tak asi zmenit mobil. :-)

Aj ine mobily maju svoje obmedzenia. Napriklad nedavno mi pisal uzivatel VIVO mobilu, ze mu nejde nastavit "Draw over other apps". Proste to nema v nastaveniach mobilu.

Zial taketo aplikacie, PPP, Tasker, ... narazaju na taketo obmedzenia mobilov a snazime sa to vseliako vyriesit, obist, ale ked nejde, tak zial nejde. :-(

emayevski commented 1 year ago

Hm, tak asi zmenit mobil. :-)

Na mojom starom Samsung S20 to isté - keď nie je Wi-Fi zapnuté, WiFiNetworkSpecifier ho nezapne.

henrichg commented 1 year ago

Som tym myslel, ze iny mobil, kde funguje setWifiEnabled() bez toho, ze by to zobrazovalo ten dialog.

emayevski commented 1 year ago

Rozumiem. Bohužiaľ, nie je teraz dobrý výber mobilov - Sony 5 je unikátnou kombináciou funkcií ako bočný čítač odtlačkov prstov, audio jack a microSD karty (áno, používam toto všetko).

henrichg commented 1 year ago

Hm, tieto vase poziadavky, to bude tazsie a tazsie, takyto mobil zohnat. S20 mala jack + sd kartu, ak si pamatam a prave od tychto dvoch veci vyrobcovia ustupuju. Bocny odtlacok prstu S20 nemala si myslim. Audio jack nahradza USB konvertor (USB->jack), SD karta sa vyhadzuje uplne. Ja na S21 nepotrebujem ani jedno. Pouzivam BT sluchadla, SD karta mne vobec nechyba. S nikym nezdielam fotky, hudbu, ze by som musel davat niekomu sd kartu. :-)

emayevski commented 1 year ago

Hm, tieto vase poziadavky, to bude tazsie a tazsie, takyto mobil zohnat. S20 mala jack + sd kartu, ak si pamatam a prave od

S20 nemá jack (používam S20 už štvrtý rok ako druhý telefón). Dúfam, že Sony ešte nejaký čas bude na trhu, a oni neplánujú odchodiť od tej svojej unikátnosti.