Aller au contenu
Langue : FR

Une application peut-elle passer avant le système au contact ?

Oui, tant qu'elle est au premier plan. Android laisse une activité au premier plan revendiquer les tags découverts avant la répartition ordinaire, ce qui est exactement la façon dont un outil de lecture examine un tag au lieu de le laisser s'ouvrir. En arrière plan, aucune application ne devance le système.

Au premier plan seulement

La documentation Android décrit un système de répartition au premier plan qui permet à une activité au premier plan d'avoir la priorité quand un tag est découvert, et note qu'il outrepasse la répartition ordinaire et les enregistrements qui nomment une application.

La condition fait tout le travail : l'application doit être ouverte et à l'écran. Une application en arrière plan n'a pas ce privilège.

C'est pourquoi ouvrir un outil de lecture change ce que fait un contact. L'outil a revendiqué les tags aussi longtemps qu'il est devant vous.

À quoi cela sert

Aux outils de lecture, qui ont besoin d'examiner un tag plutôt que de le déclencher. Sans cela, toucher un tag en essayant de l'inspecter l'ouvrirait à la place.

Aux outils d'écriture, pour la même raison. Écrire exige que l'application tienne le tag pendant tout l'échange.

Aux applications qui ont leur propre enchaînement de tags, comme un outil d'inventaire qui attend une série de tags et veut traiter chacun en interne.

Dans les trois cas le propos est le même : l'application sait ce qu'elle veut du tag et la supposition du système serait fausse.

Ce que cela ne permet pas

Revendiquer des tags en arrière plan. Dès que l'application n'est plus devant l'utilisateur, la répartition ordinaire reprend.

Outrepasser une autre application qui est elle-même au premier plan, une seule chose étant devant à la fois.

Changer ce qui se passe sur le téléphone de quelqu'un d'autre. C'est une capacité d'une application installée : elle est disponible pour les appareils que vous maîtrisez et sans objet pour un déploiement public.

Et elle n'existe pas sous cette forme sur iOS, où la lecture est amorcée par l'application plutôt qu'interceptée dans un enchaînement du système.

Conséquences pour un déploiement

Pour des tags en environnement maîtrisé, une application au premier plan vous donne une maîtrise exacte de ce que fait un contact.

Pour des tags en public, vous n'en avez aucune. Le téléphone appartient à quelqu'un d'autre, et ce qu'il a installé comme ce qui est à l'écran décident de l'issue.

Ce qui ramène la conception à une adresse web, puisqu'elle se comporte de façon prévisible qu'une application revendique les tags ou non.

Et cela explique un résultat d'essai déroutant : un tag qui se comporte d'une façon avec un outil de lecture ouvert et d'une autre depuis l'écran d'accueil se comporte correctement dans les deux cas.

Questions fréquentes

Pourquoi mon tag se comporte-t-il autrement quand une application de lecture est ouverte ?

Parce qu'une application au premier plan peut revendiquer les tags avant le système. C'est le mécanisme dont dépendent les outils de lecture et d'écriture.

Une application peut-elle revendiquer des tags en arrière plan ?

Non. Le privilège s'applique à une activité au premier plan : une application passée en arrière plan ne devance pas la répartition ordinaire.

Cela fonctionne-t-il sur iPhone ?

Pas sous cette forme. Sur iOS, une application amorce elle-même une session de lecture plutôt que d'intercepter un enchaînement du système.

Peut-on employer cela pour un déploiement public ?

Seulement là où vous maîtrisez les appareils. Sur le téléphone d'un visiteur, vous maîtrisez le tag et rien d'autre.