Masquer la notification persistante pour les applications et les superpositions en arrière-plan dans Android O

Tutoriel sur le masquage de la notification persistante dans Android O qui s'affiche lorsqu'une application en arrière-plan est en cours d'exécution ou lorsqu'une superposition s'affiche.

Mise à jour du 25/08/17: Ce tutoriel est désormais obsolète, depuis que Google a corrigé la méthode que nous utilisons pour masquer la notification persistante en arrière-plan. Cependant, nous avons découvert une autre solution à ce problème et avons rédigé un court tutoriel à ce sujet. vous pouvez trouver ici.

Android O cherche à apporter des améliorations majeures au système d'exploitation Android que nous connaissons et aimons tous. Mode image dans l'image pour les téléphones, canaux de notification, sélection de texte intelligente, services de remplissage automatique et, sous le capot, de très nombreux changements pour améliorer la durée de vie, les performances et la sécurité de votre batterie. Les limitations des processus en arrière-plan sont une fonctionnalité censée aider les utilisateurs à résoudre les problèmes liés à la durée de vie et aux performances de la batterie. Sans entrer dans trop de détails, les applications sous Android O ne peuvent plus être réveillées de leur manifeste enregistré. récepteurs de diffusion implicites et ils ne peuvent plus démarrer les services en arrière-plan sans passer par Planificateur de tâches. Si une application souhaite démarrer un service en arrière-plan, elle doit explicitement en informer l'utilisateur en publiant une notification. Cependant, lorsqu'une application s'exécute en arrière-plan, Android O semble désormais s'activer.

un autre notification persistante vous indiquant quelles applications sont en cours d'exécution. Cela se produit également lorsqu'une application avec le SYSTEM_ALERT_WINDOW autorisation (telle que la populaire Crépuscule app) affiche actuellement une superposition.

Notification persistante Android O pour les applications en arrière-plan et en superposition. Crédits: Ben Schoon \\ 9to5Google

Bien que ces notifications soient réduites par défaut, elles ne peuvent pas être ignorées par l'utilisateur ni bloquées définitivement dans les paramètres. Ce comportement est très ennuyeux pour de nombreux utilisateurs, et j'espère sérieusement que Google nous donnera un moyen de désactiver cette notification dans la version finale d'Android O/Android 8.0. Cependant, s'ils ne le font pas, est encore un moyen de masquer définitivement la notification persistante des applications en arrière-plan. Je montrerai comment procéder dans un guide étape par étape, suivi d'une explication de son fonctionnement ainsi que de mises en garde importantes.


Exigences:

  • Android O
  1. Installez les pilotes USB pour votre téléphone si vous êtes sous Windows (ils peuvent être trouvés ici).
  2. Téléchargez le Binaire de la BAD pour votre système d'exploitation particulier (les fenêtres, Mac, Linux). Ces liens pointeront toujours vers la dernière version du binaire, vous n'aurez donc pas à parcourir le net à la recherche de la dernière.
  3. Extrayez le contenu du fichier ZIP que vous avez téléchargé dans un dossier facilement accessible sur votre PC (comme dans le dossier Téléchargements).
  4. Accédez à l'application Paramètres sur votre téléphone et appuyez sur l'option « À propos du téléphone ».
  5. Recherchez le numéro de build et appuyez dessus 7 fois pour activer le mode développeur. Vous verrez une fenêtre contextuelle une fois activée.
  6. Revenez au menu principal Paramètres et entrez dans les options du développeur afin de pouvoir activer le mode de débogage USB.
  7. Branchez votre téléphone sur le PC et faites glisser votre panneau de notification vers le bas pour changer le mode USB du mode « charge uniquement » au mode « transfert de fichiers (MTP) ». Cela n'est peut-être pas nécessaire pour votre téléphone.
  8. Sur votre PC, accédez au répertoire dans lequel vous avez extrait le binaire ADB.
  9. Lancez une invite de commande/un terminal dans ce répertoire ADB. Pour les utilisateurs Windows, cela peut être fait par un Maj+Clic droit puis en sélectionnant l'option « ouvrir l'invite de commande ici ».
  10. Une fois que vous êtes dans l’environnement d’invite de commande ou de terminal, entrez la commande suivante: adb devices
  11. Cela démarrera le démon ADB. Si c'est la première fois que vous exécutez ADB, vous verrez également une invite sur votre téléphone vous demandant d'autoriser une connexion.
  12. Réexécutez maintenant la commande adb devices à partir de l’étape 10, et l’invite de commande/le terminal imprimera le numéro de série de votre appareil. Si c’est le cas, alors vous êtes prêt à passer à autre chose. Sinon, les pilotes USB ne sont probablement pas installés correctement.
  13. Revenez à l'invite de commande et entrez la commande suivante: adb shell
  14. Exécutez maintenant la commande suivante: cmd appops set android POST_NOTIFICATION ignore
  15. Vous ne recevrez pas de message de réussite ou quoi que ce soit, mais tant que vous ne voyez pas d'erreur, cela aurait dû fonctionner. Maintenant, redémarrez simplement votre téléphone !

    Oui, je réalise que ce sont des images d’écran de téléphone plutôt que des captures d’écran. Je n'ai pas moi-même d'appareil compatible Android O, j'ai donc demandé à TK de m'envoyer des images.

  16. Si vous souhaitez annuler cette commande, entrez ceci dans l'invite de commande: cmd appops set android POST_NOTIFICATION allow

Comment ça fonctionne

À l'aide de l'interface de ligne de commande cachée pour App Ops, le système de gestion des autorisations destiné aux utilisateurs d'Android, nous sommes en mesure de restreindre l'autorisation POST_NOTIFICATION du package « Android ». (Remarque: nous le définissons sur "ignorer" plutôt que sur "refuser", car "refuser" pourrait provoquer des erreurs.) J'ai trouvé cette autorisation en consultant le code source correspondant pour AppOpsManager, qui répertorie toutes les autorisations possibles pouvant être accordées/révoquées, dont beaucoup ne sont pas accessibles dans les paramètres Android. Le package "android" fait en fait référence au "Système Android" AKA framework-res.apk, qui est responsable de la notification persistante dont nous essayons de nous débarrasser.

En révoquant essentiellement l'autorisation POST_NOTIFICATION du système Android, celui-ci ne peut plus afficher de notification! Cela semble assez simple, non? Malheureusement, il y a une mise en garde à prendre en compte. « Système Android » est responsable de bien plus que cette notification, donc toutes les autres notifications qu'il pourrait publier ne seront plus affichées. Cela peut inclure la notification du mode USB (qui peut toujours être modifiée via les paramètres des options du développeur) ainsi que d'autres éléments.

Bien qu'il s'agisse d'une mesure assez drastique de notre part, c'est actuellement le seul moyen de masquer cette notification. de rooter votre téléphone et de modifier le cadre lui-même, ce qui est évidemment quelque chose que peu d'utilisateurs veulent ou peuvent faire. J'espère sincèrement que Google proposera un moyen de masquer cette notification dans une future version d'Android O, ou encore mieux de supprimer complètement cette notification. Google souhaite naturellement améliorer l'expérience utilisateur en avertissant les utilisateurs lorsqu'une application s'exécute en arrière-plan. l'utilisateur n'en est peut-être pas conscient, mais la méthode qu'il a choisie est ennuyeuse pour ceux d'entre nous qui savent ce qu'il en est de chaque application que nous utilisons en utilisant.