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

Poiché gli schermi dei telefoni sono diventati sempre più grandi, a volte vogliamo nascondere lo stato e la barra 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 implementare la modalità Immersive per offrire davvero un'esperienza a schermo intero a un utente finale. Sfortunatamente, Google e gli OEM non hanno mai mostrato agli utenti la possibilità di controllare manualmente quando vogliono abilitare la modalità Immersive. Un'applicazione di terze parti chiamata GMD Full Screen Immersive Mode ha fornito una soluzione alternativa per alcuni anni, ma il problema più grande con l'utilizzo di questa app è che rompe la tastiera virtuale.

Gli utenti hanno fluttuato attorno a un comando ADB che attiva una modalità Immersive a livello di sistema per un bel po 'di tempo, ma per anni si è creduto che l'uso di questo comando quando scollegato da un terminale ADB avrebbe richiesto l'accesso root. Tuttavia, alla fine dell'anno scorso 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 certa autorizzazione. Ciò significa che è possibile abilitare la modalità immersiva a livello di sistema su richiesta . Ad esempio, puoi creare un riquadro Nougat per attivare la modalità Immersive o persino impostare la modalità Immersive su una base per app.


Attiva / disattiva la modalità immersiva senza root

Come puoi vedere nel video sopra, ho creato un riquadro Nougat che attiva la modalità Immersive quando lo premo. Questo è sul mio Huawei Mate 9 non root, ma dovrebbe funzionare su quasi tutti i dispositivi Android 4.4+. Per far funzionare tutto ciò sono necessarie solo due applicazioni: Tasker e AutoTools Beta. Dovrai anche installare AutoNotification se vuoi creare un riquadro Nougat da questo, ma non è necessario.

Dopo aver installato entrambe le applicazioni, dovrai concedere l'autorizzazione WRITE_SECURE_SETTINGS ad AutoTools per poter attivare la modalità Immersive (tra le altre fantastiche impostazioni che tratteremo in un secondo momento). Questo perché il comando per la modalità Immersive è definito nella classe Settings.Global, sebbene l'esatta sintassi del comando sia nascosta in AOSP. Vedremo innanzitutto come concedere l'autorizzazione necessaria ad AutoTools, quindi come utilizzare il comando in Tasker.


Concessione dell'autorizzazione per le impostazioni sicure ad AutoTools

Nel sistema di gestione delle autorizzazioni di Android, le applicazioni definiscono le autorizzazioni che desiderano essere concesse nel file manifest. Gli utenti possono quindi concedere o negare le autorizzazioni per l'installazione (pre-Marshmallow) o su richiesta (Marshmallow +). Tuttavia, esistono determinate autorizzazioni che le applicazioni non possono essere concesse anche se richieste nel Manifest, come WRITE_SECURE_SETTINGS. Questo perché concedere a qualsiasi applicazione un'autorizzazione tanto potente da dare a quell'app un sacco di controllo sul dispositivo.

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

La prima cosa che devi fare è installare il file binario ADB sul tuo computer seguito dal driver giusto per il tuo dispositivo. Quindi, abilita il debug USB nelle Opzioni sviluppatore (vai su Impostazioni -> Informazioni sul telefono e tocca Crea numero 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 sarà in grado di modificare qualsiasi impostazione globale, sicura o di sistema sul dispositivo. Esistono vari modi in cui puoi giocare con queste impostazioni e l'elenco delle impostazioni disponibili in ogni categoria dipende completamente dal tuo dispositivo e dalla build del software, ma quella discussione è per un'altra volta. In ogni caso, passeremo a mostrarti come utilizzare AutoTools per attivare la modalità Immersive.


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

Per attivare la modalità Immersive tramite un riquadro è ovviamente necessario Android Nougat, quindi se non si dispone di Nougat, saltare questa sezione per imparare come attivarlo su una base per app. Se non l'hai già fatto, scarica AutoNotification dal Google Play Store e concedi l'accesso alle notifiche. Questo plug-in Tasker è quello che useremo 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 modalità Immersive 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: AutoTools Secure Settings [ Configuration:Immersive Mode: Toggle Timeout (Seconds):60 ] 

Apri Tasker e premi il pulsante + nell'angolo in basso a destra. Crea un contesto di evento e seleziona Plugin -> Notifica automatica. Premi l'icona a forma di matita per aprire la pagina di configurazione di AutoNotification. Sotto il Filtro comandi inserisci immersivemode . Questo è il comando esatto che verrà inviato quando tocchiamo un riquadro Nougat.

Ora crea una nuova attività (con qualsiasi nome) associata a questo profilo e per la prima azione vai su Plugin -> Notifica automatica -> Piastrelle . Per il numero di tessera, seleziona la prima tessera. Per il comando immettere immersivemode esattamente come scritto. L' etichetta è ciò che verrà visualizzato sotto il riquadro, quindi chiamalo come "Modalità immersiva". Per l' icona, salva l'icona che ho attaccato all'inizio di questa sezione nella tua memoria interna e usala. Infine per lo stato selezionare Attiva / Disattiva attivo.

Al termine, eseguire l'attività una volta (premere 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 delle tessere di notifica disponibili, dovresti vedere la tua nuova modalità Immersive.


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

Attivare la modalità Immersive su una base per-app è abbastanza semplice, tutto ciò che dobbiamo fare è creare un contesto dell'applicazione in Tasker che si inneschi quando l'applicazione viene avviata o chiusa e quando lo fa la modalità Immersive viene attivata. Per consentire a Tasker di monitorare le applicazioni, è necessario abilitare il 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 Labs Enter: Anon (199) A1: AutoTools Secure Settings [ Configuration:Immersive Mode: Toggle Timeout (Seconds):60 ] Exit: Anon (204) A1: AutoTools Secure Settings [ Configuration:Immersive Mode: Toggle Timeout (Seconds):60 ] 

Prima vorrai aprire Tasker, poiché creeremo un profilo per avviare la modalità Immersive quando alcune applicazioni sono aperte. Apri Tasker e premi il pulsante + nell'angolo in basso a destra per creare un nuovo profilo. Per il tipo di contesto, selezionare Applicazione e selezionare tutte le applicazioni in cui si desidera attivare la modalità Immersive.

Quando hai finito, premi indietro e Tasker ti chiederà di creare un'attività. Non è necessario assegnare un nome all'attività, quindi è sufficiente premere il segno di spunta per iniziare la creazione dell'attività. Una volta entrati nella schermata di creazione dell'attività, è necessario aggiungere solo un'azione. Premi il pulsante + in basso e vai su Plugin -> AutoTools -> Impostazioni sicure . Premere l'icona della matita per configurare AutoTools. Qui, vai su Visualizza, quindi tocca Modalità Immersione e scegli “ Attiva ”.

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


Ottimizzazione della modalità immersiva

Come accennato in precedenza, gli esatti comandi disponibili per forzare la modalità Immersive possono essere raccolti da AOSP. È possibile impostare la modalità Immersive in modo da nascondere solo la barra di notifica o anche solo la barra di navigazione, emettendo uno dei seguenti comandi:

settings put global policy_control immersive.status=*

impostazioni put global policy_control immersive.navigation = *

Naturalmente, AutoTools non ti consente di inviare direttamente comandi di shell come questo, ma ti invierà invece il comando usando la sua interfaccia. Basta selezionare "Impostazioni personalizzate" in Impostazioni sicure di AutoTools, impostare il Tipo di impostazione su "globale", impostare il "Tipo di input" su "String" e per il nome è necessario immettere "policy_control immersive.status = *" o "policy_control immersive .navigation = *”. Puoi usare questo comando al posto di quello che abbiamo usato per il Nougat Tile o il controllo per app se preferisci la modalità Immersive che nasconde una delle barre di stato o di navigazione.


Scarica e importa in Tasker

Come sempre, stiamo fornendo il file XML dello script che puoi scaricare e importare. Basta scaricare il file dal link sottostante e salvarlo ovunque nella memoria interna. Apri Tasker e disabilita la modalità Principiante in 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 cerca dove hai salvato il file .prf.xml e seleziona quel file da importare.

Se scegli di importare il riquadro delle notifiche, assicurati di salvare l'icona della modalità Immersive come immersive.png e salvarla su / sdcard / Tasker. Se scegli di importare il profilo Per-App, assicurati di accedere e personalizzare le applicazioni su cui si innescherà, poiché il mio campione è impostato per attivarsi solo quando utilizzo Chrome o Labs.

Scarica la tessera di notifica Attiva / disattiva modalità immersiva Scarica il profilo Attiva / disattiva modalità immersiva per app

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