Sådan aktiveres systemomfattende fordybende tilstand uden rod

En vejledning om, hvordan du aktiverer Immersive Mode på hele systemet (eller på en per-app-basis) uden at kræve root-adgang. Virker på alle Android 4.4+ enheder.

Efterhånden som telefonskærmene er blevet større og større, vil vi nogle gange gerne skjule status- og navigationslinjen, så vi kan se vores indhold ved hjælp af hele den sprøde, smukke HD-skærm.

Fra Android 4.4 kunne applikationer implementere Fordybende tilstand for virkelig at bringe en fuldskærmsoplevelse til en slutbruger. Desværre har Google og OEM'er aldrig afsløret muligheden for, at brugere manuelt kan kontrollere, hvornår de vil aktivere Immersive Mode. En tredjepartsapplikation kaldet GMD fuldskærms fordybende tilstand har givet en løsning i et par år nu, men det største problem med at bruge denne app er, at den bryder det bløde tastatur.

Brugere har svævet rundt i en ADB-kommando, der udløser en systemdækkende Immersive Mode i et stykke tid, men i årevis blev det antaget, at brug af denne kommando, når den blev koblet fra en ADB-terminal, ville kræve root adgang. I slutningen af ​​sidste år opdagede brugere dog, at visse ADB-kommandoer faktisk kunne udløses på enheden 

uden root-adgang, forudsat at applikationen har en vis tilladelse. Det betyder, at du kan aktivere systemdækkende fordybende tilstand på efterspørgsel. Du kan for eksempel oprette en Nougat-flise for at skifte Immersive Mode, eller endda indstille Immersive Mode på en per-app-basis.


Skift fordybende tilstand uden rod

Som du kan se i videoen ovenfor, har jeg lavet en Nougat-flise, der skifter Immersive Mode, når jeg trykker på den. Dette er på min unrooted Huawei Mate 9, men det burde virke videre næsten alle Android 4.4+ enheder. Du behøver kun to applikationer for at få dette til at fungere: Tasker og AutoTools Beta. Du skal også installere Autonotifikation hvis du vil lave en Nougat flise ud af dette, men det er ikke påkrævet.

Når du har installeret begge applikationer, skal du tildele WRITE_SECURE_SETTINGS tilladelse til AutoTools for at kunne skifte Immersive Mode (blandt andre fantastiske indstillinger, som vi vil dække på et senere tidspunkt). Dette skyldes, at kommandoen for Immersive Mode er defineret under Indstillinger. Global klasse, selvom den nøjagtige syntaks for kommandoen er skjult i AOSP. Vi vil først gennemgå, hvordan man giver den nødvendige tilladelse til AutoTools, derefter hvordan man bruger kommandoen i Tasker.


Under Androids tilladelsesstyringssystem definerer applikationer de tilladelser, de vil have tildelt i Manifest-filen. Brugere kan derefter give eller nægte tilladelser ved installation (præ-Marshmallow) eller efter anmodning (Marshmallow+). Der er dog visse tilladelser til, at ansøgninger ikke kan gives, selvom de anmoder om det i Manifestet, som f.eks WRITE_SECURE_SETTINGS. Dette skyldes, at hvis du giver enhver applikation en så kraftfuld tilladelse som dette, vil det give den app masser af kontrol over din enhed.

Men der er en løsning, som vi kan bruge til at give tilladelsen WRITE_SECURE_SETTINGS til enhver app, vi ønsker. Ved at bruge ADB'er pakkeansvarlig (pm) værktøj, kan vi give enhver tilladelse til enhver applikation, vi ønsker (forudsat at applikationen anmoder om denne tilladelse i Manifest-filen).

Den første ting du skal gøre er installer ADB binær på din computer efterfulgt af den rigtige driver til din enhed. Aktiver derefter USB-fejlfinding i Udviklerindstillinger (gå til Indstillinger --> Om telefon, og tryk på Byg nummer 7 gange, hvis du ikke allerede har gjort det) og tilslut din telefon til din computer. Send endelig følgende kommando, når du har åbnet en terminal:

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

Nu vil AutoTools have mulighed for at ændre enhver Global, Secure eller System-indstilling på din enhed. Der er forskellige måder, du kan lege med disse indstillinger og listen over tilgængelige indstillinger på hver kategori afhænger fuldstændig af din enhed og software build, men den diskussion er for en anden tid. Under alle omstændigheder fortsætter vi med at vise dig, hvordan du bruger AutoTools til at skifte Immersive Mode.


Brug af Tasker til at skifte fordybende tilstand via Nougat-flise

Skift af fordybende tilstand via en flise kræver naturligvis Android Nougat, så hvis du ikke har Nougat, så spring dette afsnit over for at lære, hvordan du skifter det på en per-app-basis. Hvis du ikke allerede har gjort det, skal du downloade AutoNotification fra Google Play Butik og give den Notification Adgang. Dette Tasker-plugin er det, vi skal bruge til at lave vores egen brugerdefinerede meddelelsesfelt.

Her er profilbeskrivelsen til dig, der kender til Tasker. Hvis du ikke er så fortrolig med Tasker, så læs videre for trin-for-trin instruktioner.

Nougat Tile Immersive Mode Skift

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 ]

Læs mere

Åbn Tasker og tryk på + knappen i nederste højre hjørne. Opret en Begivenhed kontekst og vælg Plugin --> AutoNotifikation. Tryk på blyantikonet for at åbne konfigurationssiden for AutoNotification. Under Kommandofilter gå ind fordybende tilstand. Dette er den nøjagtige kommando, der vil blive sendt, når vi trykker på en Nougat-flise.

Opret nu en ny opgave (med et hvilket som helst navn) knyttet til denne profil, og gå til den første handling Plugin --> AutoNotifikation --> Fliser. For brikkenummeret, vælg den 1. brik. For Kommando gå ind fordybende tilstand præcis som skrevet. Det etiket er, hvad der vil blive vist under flisen, så navngiv det noget i stil med "Immersive Mode." For Ikon, gem ikonet, som jeg vedhæftede i begyndelsen af ​​dette afsnit, til dit interne lager og brug det. Endelig for Stat Vælg Skift Aktiv/Inaktiv.

Når du er færdig, skal du køre opgaven én gang (tryk på afspilningsknappen nederst til venstre på skærmen til oprettelse af opgave), så flisen vil blive udfyldt. Nu, når du udvider listen over tilgængelige notifikationsfelter, bør du se din nye Immersive Mode skifte.


Brug af Tasker til at skifte fordybende tilstand på en pr-app basis

Det er ret simpelt at skifte fordybende tilstand på en per-app basis, alt hvad vi skal gøre er at oprette en applikationskontekst i Tasker, der udløses, når applikationen startes eller lukkes, og når den gør det, er Immersive Mode skiftede. For at Tasker kan overvåge applikationer, skal du aktivere den Tilgængelighedsservice.

Her er profilbeskrivelsen til dig, der kender til Tasker. Hvis du ikke er så fortrolig med Tasker, så læs videre for trin-for-trin instruktioner.

Fordybende tilstand pr. app

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 ]

Læs mere

Du vil først åbne Tasker, da vi opretter en profil for at starte Immersive Mode, når visse applikationer er åbne. Åbn Tasker og tryk på + knappen i nederste højre hjørne for at oprette en ny profil. For konteksttypen skal du vælge Ansøgning og vælg alle de applikationer, som du vil have Immersive Mode til at være aktiv i.

Når du er færdig, skal du trykke tilbage og Tasker vil bede dig om at oprette en opgave. Der er ingen grund til at navngive opgaven, så tryk bare på fluebenet for at begynde oprettelsen af ​​opgaven. Når du kommer ind på skærmen til oprettelse af opgave, er der kun én handling, du skal tilføje. Tryk på + knappen nederst og gå til Plugin --> Autoværktøjer --> Sikker indstilling. Tryk på blyantikonet for at konfigurere AutoTools. Her, gå til Skærm tryk derefter på Fordybende tilstand og vælg "Skift."

Der er en sidste ting, vi skal gøre, og det er at deaktivere Immersive Mode, når du afslutter applikationen. Gå tilbage til Taskers hovedskærm og lang tryk på den opgave, du lige har oprettet, så du kan oprette en Afslut opgave. Når du opretter en exit-opgave, skal du blot tilføje den samme handling, som du tilføjede i den første opgave - dette vil skifte Immersive Mode.


Finjustering af fordybende tilstand

Som jeg nævnte tidligere, kan de nøjagtige kommandoer, der er tilgængelige for at tvinge Immersive Mode, være hentet fra AOSP. Du kan indstille Immersive Mode til kun at skjule meddelelseslinjen eller kun skjule navigationslinjen også ved at udstede en af ​​følgende kommandoer:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Selvfølgelig lader AutoTools dig ikke direkte sende shell-kommandoer som denne, men i stedet sender du kommandoen ved hjælp af dens grænseflade. Vælg blot "Custom Setting" i AutoTools Secure Settings, indstil indstillingstypen til "global", indstil "Input Type" til "String" og for navnet skal du indtaste "policy_control immersive.status=*" eller "policy_control immersive.navigation=*". Du kan bruge denne kommando i stedet for den, vi brugte til Nougat-flisen eller per-app-kontrol, hvis du foretrækker Immersive Mode, der skjuler en af ​​enten statuslinjen eller navigationslinjen.


Download og importer til Tasker

Som altid leverer vi scriptets XML-fil, som du kan downloade og importere. Du skal blot downloade filen fra linket nedenfor og gemme den hvor som helst på dit interne lager. Åbn Tasker og deaktiver begyndertilstand i Præferencer. Gå derefter tilbage til hovedskærmen og tryk længe på fanen "Profil" øverst. Du skulle se en pop-up med en af ​​mulighederne "Importer". Tryk på det, og gå til det sted, hvor du gemte .prf.xml-filen, og vælg den fil, der skal importeres.

Hvis du vælger at importere meddelelsesfeltet, skal du sørge for at gemme ikonet Immersive Mode som immersive.png og gemme det i /sdcard/Tasker. Hvis du vælger at importere Per-App-profilen, så sørg for at gå ind og tilpasse de applikationer, som den vil udløse på, da mit eksempel er indstillet til kun at udløse, når du bruger Chrome eller XDA Labs.

Download meddelelsesflisen Immersive Mode Toggle

Download Per-App Immersive Mode Toggle Profile

Vi håber, du finder dette tip nyttigt. Fortæl os i kommentarerne nedenfor, hvis dette virker for dig!