Soll sich eine NFC-Anwendung auf Telefonen ohne NFC installieren?
Es hängt daran, ob NFC die Anwendung ist oder eine ihrer Funktionen. Als erforderlich deklariert, halten beide Stores die Anwendung von Geräten ohne den Funk fern. Als wahlfrei deklariert, installiert sie sich überall, und der Code muss das Fehlen erkennen und etwas Brauchbares sagen.
Wonach Android filtert
Die Deklaration ist uses-feature im Manifest, mit android.hardware.nfc für den Funk und android.hardware.nfc.hce für die auf dem Gerät gehostete Kartenemulation. Die Referenz ist deutlich darin, wofür es da ist: Google Play benutzt diese Elemente, um eine Anwendung von Geräten fernzuhalten, die ihre Anforderungen nicht erfüllen.
Das Merkmal required ist die ganze Entscheidung. Wahr heißt, dass die Anwendung ohne die Funktion nicht arbeiten kann, und der Store verbirgt sie vor Telefonen, denen sie fehlt; falsch heißt, dass die Anwendung sie vorzieht und ohne sie arbeitet, und der Store lässt sie überall sichtbar.
Wonach der App Store filtert
Derselbe Gedanke lebt in der Info.plist. UIRequiredDeviceCapabilities führt die Fähigkeiten des Geräts auf, die eine Anwendung verlangt, und Apple nennt die Folge schlicht: Der App Store hindert Kundinnen und Kunden daran, eine Anwendung auf einem Gerät zu installieren, das sie nicht unterstützt. Der Wert dafür ist nfc, beschrieben als NFC-Tags, verfügbar ab iOS 11 und nicht verfügbar in visionOS.
Der Schlüssel nimmt ein Feld, in dem ein aufgeführter Wert erforderlich heißt, oder ein Wörterbuch, in dem ein Wert auf falsch gesetzt werden kann, um zu sagen, dass die Fähigkeit nicht vorhanden sein darf. Ihn wegzulassen sagt, dass die Anwendung die Fähigkeit weder verlangt noch ablehnt, was der wahlfreien Deklaration unter Android entspricht.
Was zu deklarieren ist
Erforderlich, wenn die Anwendung ohne einen Tag keinen Zweck hat: ein Werkzeug zum Beschreiben, ein Lesegerät für Ihr eigenes Rollout, ein Werkzeug, dessen jeder Bildschirm den Funk voraussetzt. Zu filtern erweist den Nutzenden dort einen Dienst, und eine Bewertung mit einem Stern von einem Telefon, das nie hätte arbeiten können, ist die Alternative.
Wahlfrei, wenn NFC etwas abkürzt, das die Anwendung ohnehin auf anderem Weg tut: eine Kundenkarte, die auch einen Code scannt, eine Eintrittskarte, die auch einen Strichcode zeigt, ein Werkzeug zum Einstellen mit einem Weg von Hand. Diese aus einem Store zu filtern kostet Nutzende, die bestens bedient worden wären.
Wozu wahlfrei Sie verpflichtet
Eine wahlfreie Deklaration ist ein Versprechen, dass die Anwendung ohne den Funk arbeitet, und der Code muss es halten. Erkennen Sie das Fehlen, verbergen Sie, was nicht arbeiten kann, und behalten Sie den Weg, der keinen Tag braucht, was die Seite zum fehlenden NFC Zustand für Zustand darlegt.
Es heißt außerdem, auf einem Telefon ohne NFC zu prüfen, die eine Prüfung, die der Satz Tags mit Tags nicht abdecken kann. Ein Emulator oder ein altes Gerät genügt: Worauf es ankommt, ist, dass die Anwendung sich öffnet, nichts erklärt, was sie nicht erklären muss, und ihre andere Arbeit tut.
Häufige Fragen
Verbirgt erforderlich meine Anwendung vor manchen Telefonen?
Ja. Google Play filtert nach uses-feature, und der App Store verhindert die Installation auf Geräten, denen eine verlangte Fähigkeit fehlt.
Welchen Wert deklariere ich?
android.hardware.nfc unter Android, dazu android.hardware.nfc.hce für die Kartenemulation, und den Wert nfc von UIRequiredDeviceCapabilities unter iOS.
Kann ich es wahlfrei deklarieren und NFC trotzdem benutzen?
Ja, und das ist der Sinn: Die Anwendung installiert sich überall und prüft zur Laufzeit, bevor sie die Funktion anbietet.
Was bricht, wenn ich die Deklaration vergesse?
Zunächst nichts Sichtbares. Die Anwendung installiert sich auf Telefonen, die sie nicht nutzen können, und der Fehlschlag landet bei den Nutzenden statt beim Eintrag im Store.