Come abilitare la modalità immersiva a livello di sistema senza root

Un tutorial su come abilitare la modalità immersiva a livello di sistema (o per app) senza richiedere l'accesso root. Funziona su tutti i dispositivi Android 4.4+.

Poiché gli schermi dei telefoni sono diventati sempre più grandi, a volte vogliamo nascondere la barra di stato e di navigazione in modo da poter visualizzare i nostri contenuti utilizzando l'intero schermo HD, nitido e bello.

A partire da Android 4.4, le applicazioni potrebbero essere implementate Modalità immersiva per offrire davvero un'esperienza a schermo intero all'utente finale. Sfortunatamente, Google e gli OEM non hanno mai esposto la possibilità per gli utenti di controllare manualmente quando desiderano abilitare la modalità Immersive. Un'applicazione di terze parti chiamata Modalità immersiva a schermo intero GMD ha fornito una soluzione alternativa ormai da alcuni anni, ma il problema più grande con l'utilizzo di questa app è che rompe la tastiera virtuale.

Gli utenti si aggirano da tempo attorno a un comando ADB che attiva una modalità immersiva a livello di sistema, ma per anni si è creduto che l'utilizzo di questo comando quando si era scollegati da un terminale ADB richiedesse il root accesso. Tuttavia, alla fine dello scorso anno gli utenti hanno scoperto che alcuni comandi ADB potevano effettivamente essere attivati ​​sul dispositivo 

senza accesso root, a condizione che l'applicazione disponga di una determinata autorizzazione. Ciò significa che puoi abilitare la modalità immersiva a livello di sistema su richiesta. Puoi, ad esempio, creare un riquadro Nougat per attivare la modalità immersiva o persino impostare la modalità immersiva in base all'app.


Attiva la modalità immersiva senza root

Come puoi vedere nel video qui sopra, ho creato una tessera Nougat che attiva la modalità Immersive quando la premo. Questo è sul mio Huawei Mate 9 senza root, ma dovrebbe funzionare quasi tutti i dispositivi Android 4.4+. Hai solo bisogno di due applicazioni per farlo funzionare: Tasker E AutoTools Beta. Dovrai anche installare Notifica automatica se vuoi creare una tessera Nougat con questo, ma non è obbligatorio.

Una volta installate entrambe le applicazioni, dovrai concedere il file WRITE_SECURE_SETTINGS autorizzazione ad AutoTools per poter attivare/disattivare la modalità Immersive (tra le altre fantastiche impostazioni di cui parleremo in seguito). Questo perché il comando per la modalità immersiva è definito in Impostazioni. Globale class, sebbene la sintassi esatta del comando sia nascosta in AOSP. Vedremo prima come concedere l'autorizzazione necessaria ad AutoTools, quindi come utilizzare il comando in Tasker.


Nel sistema di gestione delle autorizzazioni di Android, le applicazioni definiscono le autorizzazioni che desiderano ottenere nel file Manifest. Gli utenti possono quindi concedere o negare le autorizzazioni durante l'installazione (pre-Marshmallow) o su richiesta (Marshmallow+). Tuttavia, ci sono alcune autorizzazioni che le applicazioni non possono essere concesse anche se lo richiedono nel Manifesto, come ad esempio WRITE_SECURE_SETTINGS. Questo perché concedere a qualsiasi applicazione un'autorizzazione così potente darebbe a quell'app un sacco di controllo sul tuo dispositivo.

Ma esiste una soluzione alternativa che possiamo utilizzare per concedere l'autorizzazione WRITE_SECURE_SETTINGS a qualsiasi app che desideriamo. Utilizzando ADB gestore pacchetti (pm) strumento, possiamo concedere qualsiasi autorizzazione a qualsiasi applicazione desideriamo (a condizione che l'applicazione richieda tale autorizzazione nel file Manifest).

La prima cosa che dovrai fare è installa il binario ADB sul tuo computer seguito da driver giusto per il tuo dispositivo. Quindi, abilita il debug USB nelle Opzioni sviluppatore (vai su Impostazioni -> Informazioni sul telefono e tocca Numero build 7 volte se non l'hai già fatto) e collega il telefono al computer. Infine, invia il seguente comando dopo aver aperto un terminale:

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

Ora AutoTools avrà la possibilità di modificare qualsiasi impostazione globale, sicura o di sistema sul tuo dispositivo. Esistono vari modi in cui puoi giocare con queste impostazioni e con l'elenco delle impostazioni disponibili in ogni categoria dipende completamente dal dispositivo e dalla build del software, ma questa discussione riguarda un'altra tempo. In ogni caso, andremo avanti mostrandoti come utilizzare AutoTools per attivare la modalità Immersive.


Utilizzo di Tasker per attivare/disattivare la modalità immersiva tramite Nougat Tile

L'attivazione della modalità immersiva tramite un riquadro richiede ovviamente Android Nougat, quindi se non disponi di Nougat salta questa sezione per scoprire come attivarla in base all'app. Se non l'hai già fatto, scarica AutoNotification dal Google Play Store e concedigli l'accesso alle notifiche. Questo plug-in Tasker è ciò che utilizzeremo per creare il nostro riquadro di notifica personalizzato.

Ecco la descrizione del profilo per quelli di voi che hanno familiarità con Tasker. Se non hai familiarità con Tasker, continua a leggere per istruzioni dettagliate.

Attiva/disattiva la modalità immersiva delle piastrelle 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 ]

Per saperne di più

Apri Tasker e premi il tasto + pulsante nell'angolo in basso a destra. Creare un Evento contesto e seleziona Plug-in --> Notifica automatica. Premi l'icona della matita per aprire la pagina di configurazione per la notifica automatica. Sotto il Filtro dei comandi accedere modalità immersiva. Questo è il comando esatto che verrà inviato quando tocchiamo una tessera Nougat.

Ora crea una nuova attività (con qualsiasi nome) allegata a questo profilo e per la prima azione vai a Plug-in --> Notifica automatica --> Riquadri. Per il numero della tessera, scegli la prima tessera. Per il Comando accedere modalità immersiva esattamente come scritto. IL etichetta è ciò che verrà visualizzato sotto il riquadro, quindi chiamalo qualcosa come "Modalità immersiva". Per il Icona, salva l'icona che ho allegato all'inizio di questa sezione nella tua memoria interna e usala. Infine per il Stato Selezionare Attiva/disattiva.

Una volta terminato, esegui l'attività una volta (premi il pulsante di riproduzione in basso a sinistra nella schermata di creazione dell'attività) in modo che il riquadro venga popolato. Ora, una volta espanso l'elenco dei riquadri di notifica disponibili, dovresti vedere la nuova modalità immersiva.


Utilizzo di Tasker per attivare/disattivare la modalità immersiva in base all'app

Attivare la modalità immersiva in base all'app è abbastanza semplice, tutto ciò che dobbiamo fare è creare un contesto dell'applicazione in Tasker che si attiverà quando l'applicazione viene avviata o chiusa e quando lo fa è la modalità Immersive attivato/disattivato. Affinché Tasker possa monitorare le applicazioni, dovrai abilitarle Servizio di accessibilità.

Ecco la descrizione del profilo per quelli di voi che hanno familiarità con Tasker. Se non hai familiarità con Tasker, continua a leggere per istruzioni dettagliate.

Modalità immersiva 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 ]

Per saperne di più

Per prima cosa dovrai aprire Tasker, poiché creeremo un profilo per avviare la modalità immersiva quando determinate applicazioni sono aperte. Apri Tasker e premi il tasto + pulsante nell'angolo in basso a destra per creare un nuovo profilo. Per il tipo di contesto, seleziona Applicazione e seleziona tutte le applicazioni in cui desideri che la modalità immersiva sia attiva.

Quando hai finito, premi Indietro e Tasker ti chiederà di creare un'attività. Non è necessario assegnare un nome all'attività, quindi basta premere il segno di spunta per avviare la creazione dell'attività. Una volta entrato nella schermata di creazione dell'attività, c'è solo un'azione che devi aggiungere. premi il + pulsante in basso e vai a Plugin --> Strumenti automatici --> Impostazioni sicure. Premi l'icona della matita per configurare AutoTools. Ecco, vai a Schermo quindi toccare Modalità immersiva e scegli "Attiva/disattiva."

C'è un'ultima cosa che dobbiamo fare: disabilitare la modalità Immersive quando esci dall'applicazione. Torna alla schermata principale di Tasker e premere a lungo sull'attività appena creata in modo da poter creare un file Esci dall'attività. Quando crei un'attività di uscita, aggiungi semplicemente la stessa azione che hai aggiunto nella prima attività: questo attiverà la modalità immersiva.


Personalizzazione della modalità immersiva

Come accennato in precedenza, i comandi esatti disponibili per forzare la modalità Immersive possono essere raccolto da AOSP. Puoi impostare la modalità immersiva per nascondere solo la barra di notifica o nascondere solo anche la barra di navigazione, emettendo uno dei seguenti comandi:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Naturalmente, AutoTools in realtà non ti consente di inviare direttamente comandi di shell come questo, ma invece invierai il comando utilizzando la sua interfaccia. Basta selezionare "Impostazioni personalizzate" nelle Impostazioni di sicurezza di AutoTools, impostare il Tipo di impostazione su "globale", impostare il "Tipo di input" su "Stringa" e per il Nome inserire "policy_control immersive.status=*" o "policy_control immersive.navigation=*". Puoi utilizzare questo comando al posto di quello utilizzato per il riquadro Nougat o il controllo per app se preferisci che la modalità immersiva nasconda una delle barre di stato o di navigazione.


Scarica e importa in Tasker

Come sempre, forniamo il file XML dello script che puoi scaricare e importare. Basta scaricare il file dal collegamento sottostante e salvarlo ovunque nella memoria interna. Apri Tasker e disabilita la modalità Principiante nelle Preferenze. Quindi, torna alla schermata principale e premi a lungo sulla scheda "Profilo" in alto. Dovresti vedere un pop-up con una delle opzioni "Importa". Toccalo e vai alla posizione in cui hai salvato il file .prf.xml e seleziona il file da importare.

Se scegli di importare il riquadro di notifica, assicurati di salvare l'icona della modalità immersiva come immersive.png e di salvarla in /sdcard/Tasker. Se scegli di importare il profilo Per-App, assicurati di accedere e personalizzare le applicazioni su cui verrà attivato, poiché il mio esempio è impostato per attivarsi solo quando si utilizza Chrome o XDA Labs.

Scarica l'attivazione/disattivazione della modalità immersiva del riquadro di notifica

Scarica il profilo di attivazione/disattivazione della modalità immersiva per app

Ci auguriamo che questo suggerimento sia utile. Fateci sapere nei commenti qui sotto se funziona per voi!