Hur man aktiverar systemomfattande uppslukningsläge utan rot

click fraud protection

En handledning om hur du aktiverar Immersive Mode i hela systemet (eller per app) utan att behöva root-åtkomst. Fungerar på alla Android 4.4+-enheter.

Eftersom telefonskärmarna har blivit större och större vill vi ibland dölja status- och navigeringsfältet så att vi kan se vårt innehåll med hjälp av hela den skarpa, vackra HD-skärmen.

Från och med Android 4.4 kunde appar implementera Uppslukande läge för att verkligen ge en helskärmsupplevelse till en slutanvändare. Tyvärr har Google och OEMs aldrig avslöjat möjligheten för användare att manuellt styra när de vill aktivera Immersive Mode. En tredjepartsapplikation anropade GMD Full Screen Immersive Mode har tillhandahållit en lösning i några år nu, men det största problemet med att använda den här appen är att den bryter det mjuka tangentbordet.

Användare har svävat runt ett ADB-kommando som utlöser ett systemomfattande uppslukningsläge under ganska lång tid, men i åratal trodde man att användning av detta kommando när det kopplades bort från en ADB-terminal skulle kräva root tillgång. Men i slutet av förra året upptäckte användare att vissa ADB-kommandon faktiskt kunde utlösas på enheten 

utan root-åtkomst, förutsatt att ansökan har ett visst tillstånd. Det betyder att du kan aktivera systemomfattande uppslukande läge på begäran. Du kan till exempel skapa en Nougat-bricka för att växla uppslukande läge, eller till och med ställa in uppslukande läge per app.


Växla uppslukande läge utan rot

Som du kan se i videon ovan har jag skapat en Nougat-bricka som växlar uppslukningsläge när jag trycker på den. Det här är på min orotade Huawei Mate 9, men det borde fungera nästan alla enheter med Android 4.4+. Du behöver bara två applikationer för att få detta att fungera: Tasker och AutoTools Beta. Du måste också installera Autoavisering om du vill göra en Nougat-bricka av detta, men det är inte nödvändigt.

När du har installerat båda programmen måste du godkänna WRITE_SECURE_SETTINGS tillstånd till AutoTools för att kunna växla uppslukande läge (bland andra fantastiska inställningar som vi kommer att täcka vid ett senare tillfälle). Detta beror på att kommandot för Immersive Mode definieras under Inställningar. Global klass, även om den exakta syntaxen för kommandot är dold i AOSP. Vi kommer först att gå över hur man ger den nödvändiga behörigheten till AutoTools och sedan hur man använder kommandot i Tasker.


Under Androids behörighetshanteringssystem definierar applikationer de behörigheter de vill beviljas i Manifest-filen. Användare kan sedan bevilja eller neka behörigheter vid installation (pre-Marshmallow) eller på begäran (Marshmallow+). Det finns dock vissa tillstånd att ansökningar inte kan beviljas även om de begär det i Manifestet, som t.ex WRITE_SECURE_SETTINGS. Detta beror på att att ge alla appar en så kraftfull behörighet som detta skulle ge den appen massor av kontroll över din enhet.

Men det finns en lösning som vi kan använda för att ge WRITE_SECURE_SETTINGS behörighet till vilken app vi vill. Genom att använda ADB pakethanterare (pm) verktyg, kan vi ge vilken behörighet som helst till vilken applikation vi vill (förutsatt att applikationen begär det tillståndet i Manifest-filen).

Det första du behöver göra är installera ADB-binären på din dator följt av rätt drivrutin för din enhet. Aktivera sedan USB-felsökning i utvecklaralternativ (gå till Inställningar --> Om telefon och tryck på Byggnummer 7 gånger om du inte redan har gjort det) och anslut din telefon till din dator. Slutligen, skicka följande kommando när du har öppnat en terminal:

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

Nu kommer AutoTools att ha möjlighet att ändra alla globala, säkra eller systeminställningar på din enhet. Det finns olika sätt du kan leka med dessa inställningar och listan över tillgängliga inställningar i varje kategori beror helt på din enhet och programvara, men den diskussionen är för en annan tid. I vilket fall som helst kommer vi att gå vidare och visa dig hur du använder AutoTools för att växla uppslukande läge.


Använda Tasker för att växla uppslukande läge via Nougat Tile

Att växla uppslukande läge via en bricka kräver uppenbarligen Android Nougat, så om du inte har Nougat, hoppa över det här avsnittet för att lära dig hur du växlar det per app. Om du inte redan har gjort det, ladda ner AutoNotification från Google Play Butik och ge den åtkomst till meddelanden. Denna Tasker-plugin är vad vi kommer att använda för att göra vår egen anpassade meddelandebricka.

Här är profilbeskrivningen för dig som är bekant med Tasker. Om du inte är så bekant med Tasker, läs vidare för steg-för-steg-instruktioner.

Växla mellan Nougat Tile Immersive Mode

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 mer

Öppna Tasker och tryck på + knappen i det nedre högra hörnet. Skapa en Händelse sammanhang och välj Plugin --> AutoNotification. Tryck på pennikonen för att öppna konfigurationssidan för AutoNotification. Under Kommandofilter stiga på uppslukande läge. Detta är det exakta kommandot som kommer att skickas när vi trycker på en Nougat-bricka.

Skapa nu en ny uppgift (med valfritt namn) kopplad till denna profil, och för den första åtgärden gå till Plugin --> AutoNotification --> Tiles. För bricka nummer, välj den första bricka. För Kommando stiga på uppslukande läge precis som skrivet. De märka är vad som kommer att visas under brickan, så döp det till något i stil med "Immersive Mode." För Ikon, spara ikonen som jag bifogade i början av det här avsnittet till din interna lagring och använd den. Äntligen för stat Välj Växla mellan Aktiv/Inaktiv.

När du är klar kör du uppgiften en gång (tryck på uppspelningsknappen längst ned till vänster på skärmen för att skapa uppgift) så fylls plattan i. När du nu utökar listan över tillgängliga meddelandebrickor bör du se ditt nya uppslukande läge.


Använda Tasker för att växla uppslukande läge per app

Att växla uppslukande läge per app är ganska enkelt, allt vi behöver göra är att skapa en applikationskontext i Tasker som kommer att utlösa när applikationen startas eller stängs, och när den gör det är Immersive Mode växlade. För att Tasker ska kunna övervaka applikationer måste du aktivera dess Tillgänglighetstjänst.

Här är profilbeskrivningen för dig som är bekant med Tasker. Om du inte är så bekant med Tasker, läs vidare för steg-för-steg-instruktioner.

Uppslukningsläge per 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 mer

Du vill först öppna upp Tasker, eftersom vi skapar en profil för att starta Immersive Mode när vissa applikationer är öppna. Öppna Tasker och tryck på + knappen i det nedre högra hörnet för att skapa en ny profil. För sammanhangstypen, välj Ansökan och välj alla applikationer som du vill att Immersive Mode ska vara aktiva i.

När du är klar, tryck tillbaka och Tasker kommer att be dig skapa en uppgift. Det finns ingen anledning att namnge uppgiften, så tryck bara på bockmarkeringen för att börja skapa uppgiften. När du väl går in på skärmen för att skapa uppgifter finns det bara en åtgärd du behöver lägga till. tryck på + knappen längst ner och gå till Plugin --> Autoverktyg --> Säker inställning. Tryck på pennikonen för att konfigurera AutoTools. Här, gå till Visa tryck sedan på Uppslukande läge och välj "Växla."

Det finns en sista sak vi behöver göra, och det är att inaktivera uppslukande läge när du avslutar programmet. Gå tillbaka till Taskers huvudskärm och lång press på uppgiften du just skapade så att du kan skapa en Avsluta uppgift. När du skapar en utgångsuppgift lägger du helt enkelt till samma åtgärd som du lade till i den första uppgiften - detta växlar uppslukningsläge.


Finjustera uppslukande läge

Som jag nämnde tidigare kan de exakta kommandon som är tillgängliga för att tvinga uppslukningsläge vara hämtat från AOSP. Du kan ställa in Immersive Mode för att bara dölja meddelandefältet eller bara dölja navigeringsfältet också, genom att utfärda något av följande kommandon:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Naturligtvis låter AutoTools dig inte direkt skicka skalkommandon som detta, utan istället skickar du kommandot med hjälp av dess gränssnitt. Välj bara "Custom Setting" i AutoTools Secure Settings, ställ in inställningstypen till "global", ställ in "Input Type" till "String" och för namnet måste du ange "policy_control immersive.status=*" eller "policy_control immersive.navigation=*". Du kan använda det här kommandot i stället för det vi använde för Nougat-plattan eller per-app-kontroll om du föredrar att Immersive Mode döljer en av antingen statusfältet eller navigeringsfältet.


Ladda ner och importera till Tasker

Som alltid tillhandahåller vi skriptets XML-fil som du kan ladda ner och importera. Ladda bara ned filen från länken nedan och spara den var som helst på ditt interna minne. Öppna Tasker och inaktivera nybörjarläge i Inställningar. Gå sedan tillbaka till huvudskärmen och tryck länge på fliken "Profil" upptill. Du bör se ett popup-fönster med ett av alternativen "Importera". Tryck på det och bläddra till var du sparade .prf.xml-filen och välj den filen att importera.

Om du väljer att importera meddelandebrickan, se till att du sparar ikonen Immersive Mode som immersive.png och sparar den i /sdcard/Tasker. Om du väljer att importera Per-App-profilen, se till att du går in och anpassar applikationerna som den kommer att triggas på, eftersom mitt exempel är inställt på att bara triggas när du använder Chrome eller XDA Labs.

Ladda ner meddelandepanelen Immersive Mode Toggle

Ladda ned Per-App Immersive Mode Toggle Profile

Vi hoppas att du tycker att det här tipset är användbart. Låt oss veta i kommentarerna nedan om detta fungerar för dig!