Peida Android O taustarakenduste ja ülekatete pidev märguanne

Õpetus püsiva märguande peitmiseks Android O-s, mis näitab, kui taustarakendus töötab või kui kuvatakse ülekate.

Värskendus 25.08.17: see õpetus on nüüd vananenud, kuna Google parandas meetodi, mida kasutame püsiva märguande peitmiseks taustal. Kuid oleme avastanud sellele probleemile veel ühe lahenduse ja kirjutanud selle kohta lühikese õpetuse, mis leiad siit.

Android O soovib tuua Android OS-i olulisi täiustusi, mida me kõik teame ja armastame. Pilt-pildis režiim telefonidele, teavituskanalid, nutikas tekstivalik, automaatse täitmise teenused ja kapoti all on palju-palju muudatusi, mis parandavad aku kasutusaega, jõudlust ja turvalisust. Üks funktsioon, mis peaks aitama kasutajatel aku tööea ja jõudlusega probleeme lahendada, on taustaprotsesside piirangud. Liiga detailidesse laskumata ei saa Android O rakendusi nende manifestis registreeritud andmetest enam äratada kaudsed levivastuvõtjad ja nad ei saa enam taustateenuseid käivitada ilma läbi tegemata Töögraafik. Kui rakendus soovib taustateenust käivitada, peab see kasutajale teatise postitamisega selgesõnaliselt teatama, et ta seda teeb. Kui aga rakendus töötab taustal, lülitub Android O nüüd näiliselt sisse 

teine pidev märguanne, mis annab teada, millised rakendused töötavad. See juhtub ka siis, kui rakendus, millel on SYSTEM_ALERT_WINDOW luba (nt populaarne Hämar rakendus) kuvab praegu ülekatte.

Android O püsiv märguanne tausta- ja ülekatterakenduste kohta. Autorid: Ben Schoon \\ 9to5Google

Kuigi need märguanded on vaikimisi minimeeritud, ei saa kasutaja neist loobuda ega seadetes jäädavalt blokeerida. Selline käitumine on paljudele kasutajatele väga tüütu ja ma loodan tõsiselt, et Google annab meile võimaluse see teatis Android O/Android 8.0 lõplikus versioonis keelata. Kui nad aga seda ei tee, siis seal on ikkagi viis Peida püsivalt taustarakenduste märguanne. Näitan, kuidas seda teha samm-sammulises juhendis, millele järgneb selle toimimise selgitus ja olulised hoiatused.


Nõuded:

  • Android O
  1. Kui kasutate Windowsi, installige oma konkreetse telefoni USB-draiverid (need leiate siin).
  2. Laadige alla ADB binaarfail teie konkreetse operatsioonisüsteemi jaoks (Windows, Mac, Linux). Need lingid osutavad alati binaarfaili uusimale versioonile, nii et te ei pea uusima versiooni otsimiseks netti otsima.
  3. Pakkige allalaaditud ZIP-faili sisu oma arvutis hõlpsasti juurdepääsetavasse kausta (nt kausta Allalaadimised).
  4. Avage oma telefoni rakendus Seaded ja puudutage valikut "Teave telefoni kohta".
  5. Leidke järgu number ja puudutage seda 7 korda, et lubada arendajarežiim. Kui see on lubatud, näete hüpikakent.
  6. Minge tagasi peamenüüsse Seaded ja sisestage Arendaja valikud, et saaksite lubada USB-silumisrežiimi.
  7. Ühendage telefon arvutiga ja pühkige teavituspaneelil alla, et muuta USB-režiim „ainult laadimise” režiimist „failiedastuse (MTP)” režiimiks. See ei pruugi teie telefoni jaoks vajalik olla.
  8. Sirvige oma arvutis kataloogi, kust ekstraheerisite ADB binaarfaili.
  9. Käivitage selles ADB kataloogis käsuviip/terminal. Windowsi kasutajate jaoks saab seda teha klahvikombinatsiooni Shift + paremklõpsuga ja seejärel valiku „ava käsurida siin” valimisega.
  10. Kui olete käsuviiba või terminali keskkonnas, sisestage järgmine käsk: adb devices
  11. See käivitab ADB deemoni. Kui kasutate ADB-d esimest korda, näete oma telefonis ka viipa, mis palub teil ühenduse lubada.
  12. Nüüd käivitage adb-seadmete käsk uuesti alates sammust 10 ja käsuviip/terminal prindib teie seadme seerianumbri. Kui see nii on, siis olete valmis edasi liikuma. Kui ei, siis pole USB-draiverid tõenäoliselt õigesti installitud.
  13. Minge tagasi käsureale ja sisestage järgmine käsk: adb shell
  14. Nüüd käivitage järgmine käsk: cmd appops set android POST_NOTIFICATION ignore
  15. Te ei saa eduteadet ega midagi, kuid seni, kuni te ei näe viga, oleks see pidanud töötama. Nüüd lihtsalt taaskäivitage oma telefon!

    Jah, ma saan aru, et need on pigem telefoni ekraanipildid kui ekraanipildid. Mul endal Android O-ga ühilduvat seadet pole, seega palusin TK-l mulle pilte saata.

  16. Kui soovite selle käsu ennistada, sisestage see käsureale: cmd appops set android POST_NOTIFICATION allow

Kuidas see töötab

Kasutades Androidi kasutajale suunatud lubade haldussüsteemi App Opsi varjatud käsurea liidest, saame piirata paketi "android" luba POST_NOTIFICATION. (Märkus: me seame selle "eiramise" asemel "eitada", kuna "keelamine" võib põhjustada vigu.) Leidsin selle loa, vaadates vastavat lähtekoodi AppOpsManager, mis loetleb kõik võimalikud load, mida saab anda/tühistada. Paljudele neist pole Androidi seadetes juurdepääs. Pakett "android" viitab tegelikult "Android System" AKA framework-res.apk-le, mis vastutab püsiva teavituse eest, millest me püüame vabaneda.

Kui tühistate sisuliselt Android-süsteemi loa POST_NOTIFICATION, ei saa see enam märguannet kuvada! Kõlab üsna lihtsalt, eks? Kahjuks tuleb meeles pidada. "Android System" vastutab enama kui ainult selle teatise eest, seega ei kuvata enam muid teateid, mida see võib postitada. See võib hõlmata USB-režiimi märguannet (mida saab siiski muuta arendaja valikute sätete kaudu) ja mõnda muud.

Kuigi see on meie poolt üsna drastiline meede, on see praegu ainus viis selle teatise varjamiseks telefoni juurutamisest ja raamistiku enda muutmisest, mida ilmselt paljud kasutajad ei soovi ega suuda tegema. Loodan siiralt, et Google pakub võimalust selle teatise peitmiseks Android O tulevases versioonis või isegi parem see teatis täielikult eemaldada. Arusaadavalt soovib Google kasutajakogemust parandada, teavitades kasutajaid, kui rakendus taustal töötab kasutaja ei pruugi sellest teadlik olla, kuid nende valitud meetod on tüütu nende jaoks, kes teavad, mida iga rakenduse kohta oleme. kasutades.