Comment activer le mode immersif à l'échelle du système sans racine

Les écrans des téléphones étant de plus en plus grands, nous souhaitons parfois masquer le statut et la barre de navigation pour pouvoir afficher notre contenu en utilisant l'intégralité du magnifique écran HD.

À partir d'Android 4.4, les applications pourraient implémenter le mode immersif pour offrir une expérience plein écran à l'utilisateur final. Malheureusement, Google et les équipementiers n’ont jamais exposé la possibilité pour les utilisateurs de contrôler manuellement le moment où ils souhaitent activer le mode Immersive. Une application tierce, le mode immersif plein écran de GMD, offre une solution de contournement depuis quelques années maintenant, mais le principal problème lié à l’utilisation de cette application est qu’elle casse le clavier virtuel.

Les utilisateurs ont flotté autour d'une commande ADB qui déclenche un mode immersif à l'échelle du système pendant un bon bout de temps, mais pendant des années, on pensait que l'utilisation de cette commande lorsqu'elle était débranchée d'un terminal ADB nécessitait un accès root. Toutefois, à la fin de l’année dernière, les utilisateurs ont découvert que certaines commandes ADB pouvaient en fait être déclenchées sur le périphérique sans accès root, à condition que l’application dispose d’un certain droit. Cela signifie que vous pouvez activer le mode immersif à la demande pour l'ensemble du système . Vous pouvez, par exemple, créer une tuile Nougat pour basculer en mode Immersif, ou même définir le mode Immersif pour chaque application.


Basculer en mode immersif sans racine

Comme vous pouvez le voir dans la vidéo ci-dessus, j'ai créé une vignette Nougat qui bascule en mode Immersif lorsque j'appuie dessus. Ceci est sur mon Huawei Mate 9 non raciné, mais il devrait fonctionner sur presque tous les appareils Android 4.4+. Deux applications suffisent pour que cela fonctionne: Tasker et AutoTools Beta. Vous devrez également installer AutoNotification si vous voulez en faire une tuile Nougat, mais ce n'est pas obligatoire.

Une fois que vous avez installé les deux applications, vous devez accorder l’autorisation WRITE_SECURE_SETTINGS à AutoTools afin de pouvoir basculer en mode Immersive (parmi d’autres paramètres impressionnants que nous couvrirons ultérieurement). En effet, la commande pour le mode immersif est définie dans la classe Settings.Global, bien que la syntaxe exacte de la commande soit masquée dans AOSP. Nous verrons d'abord comment accorder les autorisations nécessaires à AutoTools, puis comment utiliser la commande dans Tasker.


Octroi de l'autorisation de paramètres sécurisés à AutoTools

Sous le système de gestion des autorisations d'Android, les applications définissent les autorisations qu'elles souhaitent obtenir dans le fichier Manifest. Les utilisateurs peuvent ensuite accorder ou refuser des autorisations lors de l'installation (antérieure à Marshmallow) ou à la demande (Marshmallow +). Toutefois, certaines autorisations ne peuvent pas être accordées aux applications même si elles le demandent dans le manifeste, telles que WRITE_SECURE_SETTINGS. En effet, accorder à une application une autorisation aussi puissante que celle-ci donnerait à cette application une tonne de contrôle sur votre appareil.

Mais il existe une solution de contournement que nous pouvons utiliser pour accorder l’autorisation WRITE_SECURE_SETTINGS à n’importe quelle application de notre choix. En utilisant l'outil de gestion de paquets d'ADB (pm), nous pouvons accorder n'importe quelle permission à l'application de notre choix (à condition que cette application demande cette permission dans le fichier Manifest).

La première chose à faire est d’installer le fichier binaire ADB sur votre ordinateur, puis le pilote correspondant à votre périphérique. Ensuite, activez le débogage USB dans les options pour les développeurs (allez dans Paramètres -> À propos du téléphone et appuyez 7 fois sur le numéro de build si vous ne l’avez pas déjà) et connectez votre téléphone à votre ordinateur. Enfin, envoyez la commande suivante une fois que vous avez ouvert un terminal:

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

Désormais, AutoTools aura la possibilité de modifier n’importe quel paramètre global, sécurisé ou système sur votre appareil. Vous pouvez jouer avec ces paramètres de différentes manières et la liste des paramètres disponibles dans chaque catégorie dépend entièrement de la construction de votre appareil et de vos logiciels, mais cette discussion est pour une autre fois. Dans tous les cas, nous vous montrerons comment utiliser AutoTools pour basculer en mode Immersif.


Utilisation de Tasker pour basculer en mode immersif via la mosaïque de nougat

Basculer en mode Immersif via une vignette nécessite évidemment Android Nougat. Par conséquent, si vous ne possédez pas Nougat, ignorez cette section pour savoir comment la basculer par application. Si ce n'est déjà fait, téléchargez AutoNotification à partir du Google Play Store et accordez-lui un accès en notification. Nous utiliserons ce plug-in Tasker pour créer notre propre pavé de notifications personnalisé.

Voici la description du profil pour ceux d’entre vous qui connaissent bien Tasker. Si vous n'êtes pas familier avec Tasker, lisez la suite pour obtenir des instructions pas à pas.

Mode immersif de tuile de nougat bascule

 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 ] 

Ouvrez Tasker et appuyez sur le bouton + dans le coin inférieur droit. Créez un contexte d' événement et sélectionnez Plugin -> AutoNotification. Appuyez sur l'icône représentant un crayon pour ouvrir la page de configuration d'AutoNotification. Sous le filtre de commande, entrez immersivemode . C'est la commande exacte qui sera envoyée lorsque nous appuierons sur une tuile Nougat.

Créez maintenant une nouvelle tâche (avec n’importe quel nom) associée à ce profil et, pour la première action, sélectionnez Plugin -> AutoNotification -> Mosaïques . Pour le numéro de tuile, choisissez la 1ère tuile. Pour la commande, entrez immersivemode exactement comme il est écrit. L' étiquette est ce qui sera affiché sous la vignette . Nommez-le ainsi: «Mode immersif». Pour l' icône, enregistrez l'icône que j'ai jointe au début de cette section à votre stockage interne et utilisez-la. Enfin, pour l’ état, sélectionnez Activer / Désactiver.

Une fois que vous avez terminé, exécutez la tâche une fois (appuyez sur le bouton de lecture en bas à gauche de l'écran de création de la tâche) pour que la vignette soit remplie. Une fois que vous avez développé la liste des vignettes de notification disponibles, vous devriez voir votre nouvelle bascule en mode immersif.


Utilisation de Tasker pour basculer en mode immersif au cas par cas

Basculer en mode immersif pour chaque application est assez simple, il suffit de créer dans Tasker un contexte d'application qui se déclenchera lorsque l'application sera lancée ou fermée, et ensuite, le mode Immersif sera basculé. Pour que Tasker puisse surveiller les applications, vous devez activer son service d'accessibilité .

Voici la description du profil pour ceux d’entre vous qui connaissent bien Tasker. Si vous n'êtes pas familier avec Tasker, lisez la suite pour obtenir des instructions pas à pas.

Mode immersif par application

 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 ] 

Commencez par ouvrir Tasker, car nous allons créer un profil pour démarrer le mode Immersive lorsque certaines applications sont ouvertes. Ouvrez Tasker et appuyez sur le bouton + dans le coin inférieur droit pour créer un nouveau profil. Pour le type de contexte, sélectionnez Application et sélectionnez toutes les applications dans lesquelles vous souhaitez que le mode Immersif soit actif.

Lorsque vous avez terminé, appuyez sur back et Tasker vous demandera de créer une tâche. Il n'est pas nécessaire de nommer la tâche. Appuyez simplement sur la coche pour lancer la création de la tâche. Une fois que vous avez ouvert l'écran de création de tâche, il ne reste plus qu'une action à ajouter. Appuyez sur le bouton + en bas et sélectionnez Plugin -> AutoTools -> Secure Setting . Appuyez sur l'icône représentant un crayon pour configurer AutoTools. Ici, allez dans Affichage puis tapez sur Mode Immersif et choisissez « Basculer ».

Il reste une dernière chose à faire: désactiver le mode immersif lorsque vous quittez l’application. Retournez à l'écran principal de Tasker et appuyez longuement sur la tâche que vous venez de créer pour créer une tâche de sortie . Lorsque vous créez une tâche de sortie, ajoutez simplement la même action que celle que vous avez ajoutée à la première tâche: le mode Immersive est activé.


Réglage du mode immersif

Comme je l'ai mentionné précédemment, les commandes exactes disponibles pour forcer le mode immersif peuvent être extraites de l'AOSP. Vous pouvez définir le mode immersif pour masquer uniquement la barre de notification ou également la barre de navigation, en exécutant l'une des commandes suivantes:

settings put global policy_control immersive.status=*

paramètres mis global policy_control immersive.navigation = *

Bien entendu, AutoTools ne vous permet pas d'envoyer directement des commandes shell de ce type, mais vous envoyez la commande via son interface. Il suffit de sélectionner «Paramètres personnalisés» dans les paramètres sécurisés d’AutoTools, de définir le type de paramètre sur «global», de définir «Type d’entrée» sur «Chaîne» et, pour le nom, de saisir «policy_control immersive.status = *» ou «policy_control immersive .navigation = * ”. Vous pouvez utiliser cette commande à la place de celle utilisée pour le contrôle Tuile de Nougat ou contrôle par application si vous préférez que le mode Immersif masque l'une des barres d'état ou de navigation.


Télécharger et importer dans Tasker

Comme toujours, nous fournissons le fichier XML du script que vous pouvez télécharger et importer. Téléchargez simplement le fichier à partir du lien ci-dessous et enregistrez-le n'importe où sur votre stockage interne. Ouvrez Tasker et désactivez le mode Débutant dans Préférences. Retournez ensuite à l'écran principal et appuyez longuement sur l'onglet «Profil» en haut. Vous devriez voir une fenêtre contextuelle avec l’une des options «Importer». Appuyez dessus et naviguez jusqu’à l’emplacement où vous avez enregistré le fichier .prf.xml et sélectionnez ce fichier à importer.

Si vous choisissez d'importer la vignette de notification, veillez à enregistrer l'icône du mode Immersive sous le nom immersive.png et à le sauvegarder dans / sdcard / Tasker. Si vous choisissez d'importer le profil par application, veillez à personnaliser les applications sur lesquelles il déclenchera, car mon exemple est configuré pour ne se déclencher que lorsque vous utilisez Chrome ou Labs.

Télécharger le mode immersif des vignettes de notification Basculer le profil Basculer en mode immersif par application

Nous espérons que vous trouverez cette astuce utile. Faites-nous savoir dans les commentaires ci-dessous si cela fonctionne pour vous!