Cum să activați modul immersiv la nivel de sistem fără root

click fraud protection

Un tutorial despre cum să activați modul immersiv la nivelul întregului sistem (sau pe bază de aplicație) fără a necesita acces root. Funcționează pe toate dispozitivele Android 4.4+.

Pe măsură ce ecranele telefonului au devenit din ce în ce mai mari, uneori dorim să ascundem bara de stare și de navigare pentru a ne putea vizualiza conținutul folosind întregul ecran HD clar și frumos.

Începând cu Android 4.4, aplicațiile ar putea implementa Modul imersiv pentru a oferi cu adevărat o experiență pe ecran complet utilizatorului final. Din păcate, Google și OEM nu au expus niciodată capacitatea utilizatorilor de a controla manual când doresc să activeze Modul Immersive. O aplicație terță parte numită Modul imersiv GMD pe ecran complet a oferit o soluție de câțiva ani, dar cea mai mare problemă cu utilizarea acestei aplicații este că rupe tastatura soft.

Utilizatorii au plutit în jurul unei comenzi ADB care declanșează un mod immersiv la nivelul întregului sistem de ceva timp, dar ani de zile s-a crezut că utilizarea acestei comenzi atunci când este deconectată de la un terminal ADB ar necesita root acces. Cu toate acestea, la sfârșitul anului trecut, utilizatorii au descoperit că anumite comenzi ADB ar putea fi de fapt declanșate pe dispozitiv 

fără acces root, cu condiția ca aplicația să aibă o anumită permisiune. Asta înseamnă că poți activați modul imersiv la nivelul întregului sistem la cerere. Puteți, de exemplu, să creați o placă Nougat pentru a comuta în modul immersiv sau chiar să setați modul immersiv în funcție de aplicație.


Comutați modul imersiv fără root

După cum puteți vedea în videoclipul de mai sus, am creat o placă Nougat care comută în modul immersiv când apăs pe ea. Acesta este pe Huawei Mate 9 nerootat, dar ar trebui să funcționeze aproape fiecare dispozitiv Android 4.4+. Aveți nevoie doar de două aplicații pentru a face acest lucru: Tasker și AutoTools Beta. De asemenea, va trebui să instalați Notificare automată dacă vrei să faci o țiglă Nougat din asta, dar nu este obligatorie.

După ce ați instalat ambele aplicații, va trebui să acordați WRITE_SECURE_SETTINGS permisiunea AutoTools pentru a putea comuta în modul immersiv (printre alte setări minunate pe care le vom acoperi mai târziu). Acest lucru se datorează faptului că comanda pentru Modul Immersiv este definită sub Setări. Global clasa, deși sintaxa exactă pentru comandă este ascunsă în AOSP. Mai întâi vom analiza cum să acordăm permisiunea necesară AutoTools, apoi cum să folosim comanda în Tasker.


În cadrul sistemului de management al permisiunilor Android, aplicațiile definesc permisiunile pe care doresc să le fie acordate în fișierul Manifest. Utilizatorii pot apoi să acorde sau să refuze permisiuni la instalare (pre-Marshmallow) sau la cerere (Marshmallow+). Cu toate acestea, există anumite permisiuni pe care aplicațiile nu le pot fi acordate chiar dacă o solicită în Manifest, cum ar fi WRITE_SECURE_SETTINGS. Acest lucru se datorează faptului că acordarea oricărei aplicații o permisiune la fel de puternică ca aceasta ar oferi aplicației o mulțime de control asupra dispozitivului dvs.

Dar există o soluție pe care o putem folosi pentru a acorda permisiunea WRITE_SECURE_SETTINGS oricărei aplicații pe care o dorim. Prin utilizarea ADB-urilor manager de pachete (pm) instrument, putem acorda orice permisiune oricărei aplicații pe care o dorim (cu condiția ca aplicația să solicite acea permisiune în fișierul Manifest).

Primul lucru pe care va trebui să-l faci este instalați binarul ADB pe computer, urmat de driverul potrivit pentru dispozitivul dvs. Apoi, activați Depanarea USB în Opțiuni pentru dezvoltatori (accesați Setări --> Despre telefon și atingeți Numărul de compilare de 7 ori dacă nu ați făcut-o deja) și conectați telefonul la computer. În cele din urmă, trimiteți următoarea comandă după ce ați deschis un terminal:

adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS

Acum AutoTools va avea capacitatea de a modifica orice setare globală, sigură sau de sistem de pe dispozitiv. Există diferite moduri în care vă puteți juca cu aceste setări și cu lista setărilor disponibile în fiecare categorie depinde complet de dispozitivul și versiunea software-ului dvs., dar această discuție este pentru alta timp. În orice caz, vom continua să vă arătăm cum să utilizați AutoTools pentru a comuta în modul immersiv.


Folosind Tasker pentru a comuta în modul imersiv prin Nougat Tile

Comutarea modului immersiv printr-o țiglă necesită, în mod evident, Android Nougat, așa că, dacă nu aveți Nougat, săriți peste această secțiune pentru a afla cum să îl comutați în funcție de aplicație. Dacă nu ați făcut-o deja, descărcați AutoNotification din Google Play Store și acordați-i acces la notificare. Acest plug-in Tasker este ceea ce vom folosi pentru a crea propria noastră placă de notificare personalizată.

Iată descrierea profilului pentru cei dintre voi care sunt familiarizați cu Tasker. Dacă nu sunteți atât de familiarizat cu Tasker, citiți mai departe pentru instrucțiuni pas cu pas.

Comutare mod captivant Tile Nougat

Profile: Toggle Immersive Mode (30)
Event: AutoNotification [ Configuration: Event Behaviour
Filter: immersivemode ]
Enter: Immersive Mode (33)
A1: AutoNotification Tiles [ Configuration: Tile: 1
Command: immersivemode
Label: Immersive mode
Icon: /storage/emulated/0/Tasker/immersive.png
State: 999 Timeout (Seconds):60 ]
A2: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

citeşte mai mult

Deschideți Tasker și apăsați pe + butonul din colțul din dreapta jos. Creaza un Eveniment context și selectați Plugin --> Notificare automată. Apăsați pictograma creion pentru a deschide pagina de configurare pentru notificare automată. Sub Filtru de comandă introduce modul imersiv. Aceasta este comanda exactă care va fi trimisă atunci când atingem o placă Nougat.

Acum creați o nouă sarcină (cu orice nume) atașată acestui profil și, pentru prima acțiune, accesați Plugin --> Notificare automată --> Tiles. Pentru numărul piesei, alegeți prima piesă. Pentru Comanda introduce modul imersiv exact asa cum este scris. The eticheta este ceea ce va fi afișat sub țiglă, așa că denumește-l ceva de genul „Mod immersiv”. Pentru Pictogramă, salvați pictograma pe care am atașat-o la începutul acestei secțiuni în memoria dvs. internă și utilizați-o. În cele din urmă pentru Stat Selectați Comutați activ/inactiv.

După ce ați terminat, rulați Sarcina o dată (apăsați butonul de redare din partea stângă jos a ecranului de creare a sarcinii), astfel încât țigla va fi populată. Acum, odată ce extindeți lista de plăci de notificare disponibile, ar trebui să vedeți noua comutare a modului imersiv.


Utilizarea Tasker pentru a comuta în modul imersiv pe bază de aplicație

Comutarea modului immersiv pe bază de aplicație este destul de simplă, tot ce trebuie să facem este să creăm un context de aplicație în Tasker care se va declanșa atunci când aplicația este lansată sau închisă și atunci când face acest lucru, este modul immersiv comutat. Pentru ca Tasker să monitorizeze aplicațiile, va trebui să le activați Serviciul de accesibilitate.

Iată descrierea profilului pentru cei dintre voi care sunt familiarizați cu Tasker. Dacă nu sunteți atât de familiarizat cu Tasker, citiți mai departe pentru instrucțiuni pas cu pas.

Modul imersiv per aplicație

Profile: Per-App Immersive Mode (192)
Application: Chrome or XDA Labs
Enter: Anon (199)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

Exit: Anon (204)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

citeşte mai mult

Mai întâi, veți dori să deschideți Tasker, deoarece vom crea un profil pentru a porni Modul Immersive când anumite aplicații sunt deschise. Deschideți Tasker și apăsați pe + butonul din colțul din dreapta jos pentru a crea un profil nou. Pentru tipul de context, selectați Aplicație și selectați toate aplicațiile în care doriți să fie activ Modul immersiv.

Când ați terminat, apăsați înapoi și Tasker vă va cere să creați o sarcină. Nu este nevoie să denumiți sarcina, așa că apăsați pe bifa pentru a începe crearea sarcinii. Odată ce intri în ecranul de creare a sarcinii, există o singură acțiune pe care trebuie să o adaugi. apasă pe + butonul din partea de jos și accesați Plugin --> AutoTools --> Secure Setting. Apăsați pictograma creion pentru a configura AutoTools. Aici, du-te la Afişa apoi atingeți Modul imersiv si alege "Comutare."

Există un ultim lucru pe care trebuie să-l facem și acesta este să dezactivăm modul immersiv atunci când ieși din aplicație. Reveniți la ecranul principal al lui Tasker și apasare prelungită pe Sarcina pe care tocmai ai creat-o pentru a putea crea un Ieșiți din sarcină. Când creați o sarcină de ieșire, adăugați pur și simplu aceeași acțiune pe care ați adăugat-o în prima sarcină - aceasta va comuta în modul immersiv.


Reglare fină a modului imersiv

După cum am menționat anterior, comenzile exacte disponibile pentru forțarea modului immersiv pot fi cules de la AOSP. Puteți seta modul immersiv pentru a ascunde numai bara de notificări sau pentru a ascunde și bara de navigare, lansând oricare dintre următoarele comenzi:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Desigur, AutoTools nu vă permite să trimiteți direct comenzi de tip shell ca aceasta, ci, în schimb, veți trimite comanda folosind interfața sa. Doar selectați „Setare personalizată” în Setări Securizate AutoTools, setați tipul de setare la „global”, setați „Tipul de intrare” la „String” și pentru Nume trebuie să introduceți „policy_control immersive.status="*" sau „policy_control immersive.navigation=*". Puteți folosi această comandă în locul celei pe care am folosit-o pentru nougat Tile sau controlul per-aplicație dacă preferați modul immersiv să ascundeți una dintre bara de stare sau bara de navigare.


Descărcați și importați în Tasker

Ca întotdeauna, oferim fișierul XML al scriptului pe care îl puteți descărca și importa. Pur și simplu descărcați fișierul din linkul de mai jos și salvați-l oriunde în spațiul de stocare intern. Deschideți Tasker și dezactivați modul începător în Preferințe. Apoi, reveniți la ecranul principal și apăsați lung pe fila „Profil” sus. Ar trebui să vedeți o fereastră pop-up cu una dintre opțiuni fiind „Importați”. Atingeți-l și răsfoiți unde ați salvat fișierul .prf.xml și selectați acel fișier de importat.

Dacă alegeți să importați panoul de notificare, asigurați-vă că salvați pictograma Mod immersive ca immersive.png și o salvați în /sdcard/Tasker. Dacă alegeți să importați profilul per aplicație, asigurați-vă că intrați și personalizați aplicațiile pe care se va declanșa, deoarece eșantionul meu este setat să se declanșeze numai atunci când utilizați Chrome sau XDA Labs.

Descărcați comutatorul mod immersiv pentru panoul de notificare

Descărcați profilul de comutare a modului immersiv per aplicație

Sperăm că veți găsi acest sfat util. Spune-ne în comentariile de mai jos dacă acest lucru funcționează pentru tine!