Slėpti nuolatinį pranešimą apie fonines programas ir perdangas sistemoje „Android O“.

Pamoka, kaip paslėpti nuolatinį pranešimą „Android O“, kuris rodo, kada veikia foninė programa arba kai rodoma perdanga.

Atnaujinimas 2017-08-25: ši pamoka yra pasenusi, nes „Google“ pataisė metodą, kurį naudojame nuolatiniam pranešimui paslėpti fone. Tačiau mes atradome kitą šios problemos sprendimą ir parašėme trumpą mokymo programą galite rasti čia.

„Android O“ nori patobulinti „Android“ OS, kurią visi žinome ir mėgstame. Vaizdo vaizde režimas telefonams, pranešimų kanalams, išmanusiam teksto pasirinkimui, automatinio pildymo paslaugoms ir daugybei pakeitimų po gaubtu, siekiant pagerinti akumuliatoriaus veikimo laiką, našumą ir saugumą. Viena funkcija, kuri turėtų padėti vartotojams išspręsti problemas, susijusias su akumuliatoriaus veikimo trukme ir veikimu, yra fono proceso apribojimai. Per daug nesigilinant į detales, „Android O“ programų nebegalima pažadinti iš manifeste registruotų programų numanomus transliacijos imtuvus ir jie nebegali paleisti foninių paslaugų be jų Darbo planuotojas. Jei programa nori paleisti foninę paslaugą, ji turi aiškiai pasakyti vartotojui, kad tai daro paskelbdama pranešimą. Tačiau kai programa veikia fone, „Android O“ dabar, atrodo, įsijungia 

kitas nuolatinis pranešimas, nurodantis, kokios programos veikia. Tai taip pat atsitinka, kai programa su SYSTEM_ALERT_WINDOW leidimas (pvz., populiarus Prieblanda programa) šiuo metu rodoma perdanga.

„Android O“ nuolatinis pranešimas apie fono ir perdangos programas. Autoriai: Ben Schoon \\ 9to5Google

Nors pagal numatytuosius nustatymus šie pranešimai yra sumažinti, vartotojas negali jų atsisakyti arba visam laikui užblokuoti nustatymuose. Toks elgesys labai erzina daugelį vartotojų, todėl labai tikiuosi, kad „Google“ suteiks mums galimybę išjungti šį pranešimą galutiniame „Android O“ / „Android 8.0“ leidime. Tačiau jei jie to nedaro, ten yra vis dar būdas visam laikui paslėpti nuolatinį foninių programų pranešimą. Aš parodysiu, kaip tai padaryti, nuosekliame vadove, po kurio paaiškinsiu, kaip tai veikia, ir pateiksiu svarbius įspėjimus.


Reikalavimai:

  • Android O
  1. Įdiekite savo konkretaus telefono USB tvarkykles, jei naudojate „Windows“ (jas galite rasti čia).
  2. Atsisiųskite ADB dvejetainis jūsų konkrečiai operacinei sistemai (Windows, Mac, Linux). Šios nuorodos visada nurodys naujausią dvejetainės versijos versiją, todėl jums nereikės naršyti internete ieškant naujausios.
  3. Išskleiskite atsisiųsto ZIP failo turinį į lengvai pasiekiamą kompiuterio aplanką (pvz., aplanką Atsisiuntimai).
  4. Eikite į nustatymų programą telefone ir bakstelėkite parinktį „Apie telefoną“.
  5. Raskite kūrimo numerį ir bakstelėkite jį 7 kartus, kad įjungtumėte kūrėjo režimą. Kai jis bus įjungtas, pamatysite iššokantįjį langą.
  6. Grįžkite į pagrindinį meniu Nustatymai ir įveskite Kūrėjo parinktis, kad galėtumėte įjungti USB derinimo režimą.
  7. Prijunkite telefoną prie kompiuterio ir perbraukite žemyn pranešimų skydeliu, kad pakeistumėte USB režimą iš „tik įkrovimas“ į „failų perdavimo (MTP)“ režimą. Tai gali būti nereikalinga jūsų telefonui.
  8. Savo kompiuteryje eikite į katalogą, kuriame ištraukėte ADB dvejetainį failą.
  9. Šiame ADB kataloge paleiskite komandų eilutę / terminalą. „Windows“ naudotojai tai gali padaryti paspausdami „Shift“ + dešiniuoju pelės klavišu, tada pasirinkdami parinktį „atidaryti komandų eilutę čia“.
  10. Kai būsite komandų eilutės arba terminalo aplinkoje, įveskite šią komandą: adb devices
  11. Tai paleis ADB demoną. Jei ADB naudojate pirmą kartą, telefone taip pat pamatysite raginimą leisti prisijungti.
  12. Dabar iš naujo paleiskite adb įrenginių komandą nuo 10 veiksmo, o komandų eilutė / terminalas išspausdins jūsų įrenginio serijos numerį. Jei taip, tada esate pasiruošę judėti toliau. Jei ne, greičiausiai USB tvarkyklės nėra tinkamai įdiegtos.
  13. Grįžkite į komandų eilutę ir įveskite šią komandą: adb shell
  14. Dabar vykdykite šią komandą: cmd appops set android POST_NOTIFICATION ignore
  15. Negausite sėkmės pranešimo ar nieko, bet tol, kol nematote klaidos, ji turėjo veikti. Dabar tiesiog paleiskite telefoną iš naujo!

    Taip, aš suprantu, kad tai yra telefono ekrano nuotraukos, o ne ekrano kopijos. Pats neturiu su Android O suderinamo įrenginio, todėl paprašiau TK atsiųsti man vaizdų.

  16. Jei norite grąžinti šią komandą, įveskite tai į komandų eilutę: cmd appops set android POST_NOTIFICATION allow

Kaip tai veikia

Naudodami paslėptą komandų eilutės sąsają, skirtą „App Ops“, „Android“ naudotojui skirtoje leidimų valdymo sistemoje, galime apriboti „Android“ paketo POST_NOTIFICATION leidimą. (Pastaba: nustatome jį kaip „ignoruoti“, o ne „neleisti“, nes „neigti“ gali sukelti klaidų.) Šį leidimą radau peržiūrėjęs atitinkamą šaltinio kodą AppOpsManager, kuriame pateikiami visi galimi leidimai, kuriuos galima suteikti / atšaukti, daugelis iš kurių nepasiekiami „Android“ nustatymuose. „Android“ paketas iš tikrųjų reiškia „Android System“ AKA framework-res.apk, kuris yra atsakingas už nuolatinį pranešimą, kurio bandome atsikratyti.

Iš esmės atšaukus „Android“ sistemos POST_NOTIFICATION leidimą, ji nebegali rodyti pranešimo! Skamba gana paprastai, tiesa? Deja, yra įspėjimas, kurį reikia žinoti. „Android System“ yra atsakinga ne tik už šį pranešimą, todėl jokie kiti pranešimai, kuriuos ji gali paskelbti, nebebus rodomi. Tai gali apimti USB režimo pranešimą (kurį vis tiek galima pakeisti nustatant kūrėjo parinktyse) ir kai kuriuos kitus dalykus.

Nors tai yra gana drastiška mūsų priemonė, šiuo metu tai yra vienintelis būdas paslėpti šį pranešimą atskirai nuo jūsų telefono įsišaknijimo ir pačios sistemos modifikavimo, o tai akivaizdu, kad nedaug vartotojų nori ar gali daryti. Nuoširdžiai tikiuosi, kad „Google“ pasiūlys būdą paslėpti šį pranešimą būsimame „Android O“ leidime arba dar geriau visiškai pašalinti šį pranešimą. Suprantama, kad „Google“ nori pagerinti naudotojų patirtį, pranešdama naudotojams, kai programa veikia fone vartotojas gali to nežinoti, bet jo pasirinktas metodas erzina tuos iš mūsų, kurie žino, ką apie kiekvieną programą naudojant.