Aller au contenu
Langue : FR

Une application NFC doit-elle s'installer sur un téléphone sans NFC ?

Cela dépend de si le NFC est l'application ou l'une de ses fonctions. Déclarée requise, les deux magasins tiennent l'application loin des appareils sans la radio. Déclarée facultative, elle s'installe partout, et le code doit détecter l'absence et dire quelque chose d'utile.

Ce sur quoi Android filtre

La déclaration est uses-feature au manifeste, avec android.hardware.nfc pour la radio et android.hardware.nfc.hce pour l'émulation de carte hébergée sur l'appareil. La référence dit explicitement à quoi cela sert : Google Play emploie ces éléments pour écarter une application des appareils qui ne remplissent pas ses exigences.

L'attribut required est toute la décision. Vrai veut dire que l'application ne peut pas fonctionner sans la fonction, et le magasin la masque aux téléphones qui ne l'ont pas ; faux veut dire que l'application la préfère et marche sans, et le magasin la laisse visible partout.

Ce sur quoi l'App Store filtre

La même idée vit dans l'Info.plist. UIRequiredDeviceCapabilities liste les fonctions d'appareil qu'une application exige, et Apple en énonce la conséquence sans détour : l'App Store empêche les clients d'installer une application sur un appareil qui ne les prend pas en charge. La valeur de celle-ci est nfc, documentée comme les tags NFC, disponible depuis iOS 11 et indisponible dans visionOS.

La clé prend un tableau, où une valeur listée veut dire exigée, ou un dictionnaire, où une valeur peut être posée à faux pour dire que la fonction ne doit pas être présente. L'omettre dit que l'application n'exige ni ne refuse la fonction, ce qui est l'équivalent de la déclaration facultative sur Android.

Laquelle déclarer

Requise, quand l'application n'a aucun objet sans un tag : un outil d'écriture, un lecteur pour votre propre déploiement, un outil dont chaque écran suppose la radio. Y filtrer rend service à l'utilisateur, et l'alternative est un avis à une étoile venu d'un téléphone qui n'aurait jamais pu marcher.

Facultative, quand le NFC abrège quelque chose que l'application fait déjà autrement : une carte de fidélité qui scanne aussi un code, un billet qui affiche aussi un code-barres, un outil de configuration avec un chemin manuel. Les écarter d'un magasin coûte des utilisateurs qui auraient été parfaitement servis.

Ce que facultatif vous oblige à faire

Une déclaration facultative est une promesse que l'application marche sans la radio, et le code doit la tenir. Détectez l'absence, masquez ce qui ne peut pas marcher, et gardez le chemin qui n'a pas besoin de tag, ce qu'expose état par état la page du NFC coupé ou absent.

Cela veut dire aussi tester sur un téléphone sans NFC, le seul test que le jeu de tags ne peut pas couvrir avec des tags. Un émulateur ou un vieux combiné suffit : ce qui compte est que l'application s'ouvre, n'explique rien dont elle n'a pas besoin, et fasse son autre travail.

Questions fréquentes

Requise masque-t-elle mon application à certains téléphones ?

Oui. Google Play filtre sur uses-feature, et l'App Store empêche l'installation sur les appareils qui n'ont pas une fonction exigée.

Quelle valeur déclarer ?

android.hardware.nfc sur Android, plus android.hardware.nfc.hce pour l'émulation de carte, et la valeur nfc d'UIRequiredDeviceCapabilities sur iOS.

Puis-je la déclarer facultative et employer quand même le NFC ?

Oui, et c'est tout l'intérêt : l'application s'installe partout et vérifie à l'exécution avant de proposer la fonction.

Que casse-t-il si j'oublie la déclaration ?

Rien de visible au début. L'application s'installe sur des téléphones qui ne peuvent pas s'en servir, et l'échec retombe sur les utilisateurs plutôt que sur la fiche du magasin.