Android M Début de verrouillage vers le bas Floating les applications, les utilisateurs doivent donner une autorisation spéciale de puiser dans Autres Apps
Contenu de l'Article
Applications flottantes sont devenus emblématiques de la flexibilité et gamme unique d'Android. Aucune autre OS mobile permet des applications non-système d'interagir directement avec les utilisateurs et dépasser l'écran tandis qu'une autre application est censée être au premier plan. Cette capacité permet une expérience utilisateur puissante et personnalisable, mais il peut aussi devenir rapidement un problème si une application est mal ses abus de développement mis en œuvre ou de ce privilège à des fins malveillantes.
Android 6.0 Marshmallow est en train de nouvelles règles pour dessiner sur l'écran. A partir de Developer Preview 3, apps ciblage API 23 (ou supérieur) devra demander aux utilisateurs d'accorder la permission pour eux de tirer sur d'autres applications. Ce ne sera pas fait par la nouvelle un système d'autorisation la carte de style avec des dialogues pop-up amicales, mais avec un changement de contexte plus ardue pour une liste de bascule, comme nous sommes habitués à la visite après avoir installé un nouveau clavier logiciel.
Contexte
L'autorisation de système en question est nommé android.permission.SYSTEM_ALERT_WINDOW et il a été autour depuis API Niveau 1. La documentation développeur est assez bref, décrivant simplement comme un moyen d'ouvrir une fenêtre sur d'autres applications et d'avertissement développeurs qu'il est seulement destinés à des activités au niveau du système.
Permet à une application d'ouvrir les fenêtres en utilisant le type
TYPE_SYSTEM_ALERT
, montré sur toutes les autres applications. Très peu d'applications devraient utiliser cette permission-ces fenêtres sont destinées à l'interaction au niveau du système avec l'utilisateur.
Facebook Messenger a fait ses débuts "chefs chat" Il ya un peu plus de deux ans, donnant aux utilisateurs une cible du robinet perpétuellement disponible sur leurs écrans pour voir rapidement et répondre aux messages. Alors que Messenger était loin à partir de la première application à faire usage d'une interface utilisateur flottante, il peut être crédité de populariser la fonctionnalité et l'interface désormais familière bulle flottante. Depuis lors, un bon nombre de développeurs notables ont soit ajouté des éléments flottants (par exemple, LastPass et MusiXmatch) Ou construit des applications entières autour de la fonctionnalité (par exemple, Lien Bubble).
Pourquoi changer quelque chose?
Jusqu'à présent, Google n'a pas publié de déclarations officielles concernant ce changement. En fait, ce détail particulier a été laissé hors de la vue d'ensemble de l'API pour Aperçu 3. Il est probable l'équipe Android ne considère pas assez sur ce point important de décrire avec toutes les nouvelles fonctionnalités énumérées sur cette page- mais étrangement, il a également été à gauche sur la page Changements de comportement, où il presque certainement aurait été documentée. Le seul endroit avec tout dossier semble être les différences de l'API Android Rapport, un ensemble peu encombrant de pages générées automatiquement, qui énumèrent les modifications d'un niveau de l'API à l'autre. Je ne suis vraiment pas essayer de peindre un tableau où Google tente de cacher ce changement, mais il ya de toute évidence aucun effort pour rendre les développeurs au courant de ce nouveau comportement, soit.
Bien qu'il n'y ait aucune explication officielle, les raisons pour verrouiller cette autorisation ne sont pas difficiles à deviner. La capacité de tirer sur d'autres applications est une proposition profondément risqué, surtout étant donné que le système d'exploitation Android ne pas ajouter de la décoration pour signifier une application de fond est responsable du contenu à l'écran.
Par exemple, un développeur malveillant pourrait afficher un écran de connexion clonée pour une application populaire - disons Facebook ou Twitter - dans un effort pour voler des informations d'identification.
Un détail intéressant est apparue grâce à la Developer Preview Issue Tracker. Un Googler a répondu à une question en notant que le SYSTEM_ALERT_WINDOW l'autorisation avait été "soulevée au-dessus de dangereux." Autorisations Android sont techniquement classés comme étant soit 'normal' ou 'dangereux' tel que décrit par la niveaux de protection. (Note: 'Signature' et 'signatureOrSystem' sont également des options, mais elles ne sont pas pertinentes à cette discussion.) Dans de rares cas, certaines capacités ont été d'une attention particulière parce qu'ils ont nécessairement d'accorder l'accès très haut risque pour être fonctionnel. Quelques exemples sont des méthodes d'entrée comme les claviers logiciels, et les administrateurs de périphériques comme Android Device Manager, qui a la capacité de lancer une réinitialisation d'usine. Dessin sur d'autres applications sera maintenant classer dans cette catégorie exceptionnellement à haut risque.
Qu'est-ce que cela signifie pour les utilisateurs?
Les utilisateurs peuvent espérer encore un autre message vous demandant une permission, mais celui-ci ne seront pas regarder ou se sentir comme les nouvelles boîtes de dialogue d'autorisation Android M. Il est impossible d'autoriser les applications pour dessiner sur l'écran, sans un changement de contexte. Développeurs devront envoyer leurs utilisateurs à un écran spécial dans l'application Réglages avec des instructions spécifiques pour permettre la permission. Si cela semble familier, il est parce que le même schéma a été utilisé pendant des années quand nous mettons en place des modes de saisie, et plus récemment avec les administrateurs de l'accessibilité et des périphériques.
Les développeurs peuvent envoyer directement les utilisateurs vers la droite de l'écran pour chaque application. Il ya seulement un commutateur rapide de contexte, une bascule, puis de revenir à l'application d'appel avec le bouton de retour. Il est assez facile, mais ne vous méprenez pas, ce flux est destiné à se sentir intimidant. Les gens devraient se sentir nerveux quand une application leur donne des instructions et les envoie à une partie inconnue du système, à quel point ils seront confrontés à un message d'avertissement qui leur rappelle en outre que cela pourrait ne pas être en sécurité. Pour quelqu'un qui n'a jamais fait ça avant, il devrait se sentir un peu effrayant, comme transporter les bagages d'un étranger à travers la sécurité dans un aéroport.
Gauche: LastPass notification. Centre: Liste des applications qui utilisent la fenêtre Système d'alerte. Droit: Écran de confirmation.
Certaines grandes applications sont déjà mis à jour pour soutenir cette nouvelle exigence. Crédit pour soulever d'abord le drapeau sur cette nouvelle politique appartient à Sebastiano Gottardo, un développeur musiXmatch qui a découvert le problème tout en travaillant sur une mise à jour. De même, LastPass n'a pas tardé à ajouter le support pour 6,0 autorisations Android, et a déjà publié une mise à jour du Play Store. Les flux de LastPass consiste simplement à poster une notification la première fois un formulaire de connexion est détectée, aussi longtemps que l'App Remplissez-en fonction est activée.
Pas toutes les applications qui tirent sur le dessus de l'écran seront demandent aux utilisateurs de passer par cette étape tout de suite. Applications qui ciblent API Level 22 ou ci-dessous reçoivent automatiquement la permission, sans doute pour maintenir la compatibilité. Seulement en ciblant API Level 23 (Android M) seront développeurs ont pour envoyer aux utilisateurs à travers les étapes supplémentaires. Au moins, ce Voilà comment cela fonctionne dans la Developer Preview 3 - Google pourrait plausible changer ce comportement pour la version finale, mais ne misez pas sur elle. Indépendamment de l'API de niveau, les utilisateurs peuvent révoquer cette autorisation d'une application en visitant: Paramètres -> Applications -> Avancé (le bouton de vitesse) -> dessiner sur d'autres applications.
Pour les développeurs
Si vous travaillez sur une application qui fait usage de la SYSTEM_ALERT_WINDOW permission, il ya quelques choses que vous voudrez probablement savoir. Le 6.0 SDK Android introduit un certain nombre de choses à l'API qui font de ce nouveau processus relativement indolore à mettre en œuvre.
Pour commencer, un appel à Settings.canDrawOverlays () vous indique si oui ou non votre application a été accordé la permission de dessiner sur l'écran. Si l'autorisation n'a pas encore été accordée, créer une intention et définir sa destination Settings.ACTION_MANAGE_OVERLAY_PERMISSION et ajouter un URI sous la forme de «paquet:
Conclusion
Contrairement aux nouvelles boîtes de dialogue d'autorisation, celui-ci doit absolument inclure une interface utilisateur personnalisée pour expliquer pourquoi les utilisateurs sont envoyés à un autre écran et de ce qu'ils doivent faire là-bas. Les mesures pour soutenir ce changement ne sont pas compliquées et ne pas ajouter beaucoup de travail pour les développeurs, mais le changement de contexte est un obstacle intentionnelle. Développeurs devront gagner la confiance des utilisateurs avant de demander trop de permissions, et celui-ci peut être juste un peu trop loin pour certains.
Android M pourrait bientôt gagner une réputation pour une surabondance de dialogues de confirmation, au moins voilà comment il se sentira à personne mise en place d'un nouveau dispositif. Heureusement, nous avons besoin que chaque accorder la permission d'une application une fois, donc les choses ne seront jamais aussi mauvais que Windows Vista.
- Passant par:
- Sebastiano Gottardo