Zum Inhalt springen
Sprache: DE

Was soll eine Anwendung tun, wenn NFC aus oder nicht vorhanden ist?

Halten Sie die Zustände auseinander, bevor Sie irgendeine Meldung schreiben. Unter Android: überhaupt kein Controller, ein vom Nutzenden abgeschalteter Controller, und ab Android 16 für Ihre Anwendung abgelehnte Tags. Auf dem iPhone: verfügbar oder nicht. Sagen Sie dann, welcher es ist, und lassen Sie den Rest der Anwendung arbeiten.

Drei Zustände unter Android

Sie brauchen verschiedene Antworten, und die Seite zu den Grenzen des Controllers liest sie zur Laufzeit. getDefaultAdapter() gibt null zurück, wenn das Telefon keinen NFC-Controller hat: Die Funktion gibt es nicht und wird es auf diesem Gerät nie geben. isEnabled() gibt falsch zurück, wenn die Nutzenden NFC abgeschaltet haben, was eine Einstellung davon entfernt ist, behoben zu sein. Und ab Android 16 können Nutzende Tag-Absichten für eine Anwendung ablehnen, was isTagIntentAllowed() meldet, während der Adapter sagt, dass er an ist.

Der dritte ist der, der die besten Fehlermeldungen erzeugt, weil alles richtig aussieht: NFC ist eingeschaltet, die Anwendung ist installiert, das Manifest stimmt, und es kommt nie ein Tag an.

Zwei auf dem iPhone

Core NFC antwortet, bevor eine Sitzung besteht: readingAvailable sagt, ob das Gerät lesen kann. Darüber hinaus tragen die Fehler den Rest, readerErrorRadioDisabled für einen abgeschalteten Funk und readerErrorUnsupportedFeature für etwas, das die Sitzung nicht kann.

Es gibt keine Entsprechung des Android-Einstellungsbildschirms, zu dem sich die Nutzenden schicken ließen, was den Wortlaut ändert und nicht die Logik: Ein iPhone, das nicht lesen kann, ist eine Tatsache des Geräts, und die Aufgabe der Anwendung ist, es einmal zu sagen und weiterzugehen. Welche iPhones überhaupt lesen, steht auf der Seite zu den Modellen.

Was für jeden zu sagen ist

Keine Hardware: Verbergen Sie die Funktion, statt sie zu erklären. Eine Schaltfläche, die auf diesem Telefon nicht arbeiten kann, ist eine wartende Supportanfrage, und ihr Fehlen braucht keinen Satz.

Abgeschaltet: Bieten Sie die Einstellung an. Android stellt den Einstellungsbildschirm für NFC als Absicht bereit, und die Nutzenden dorthin zu schicken schlägt es, zu beschreiben, wo er liegt, da der Weg sich je Hersteller unterscheidet, was die Seite zum Einschalten zeigt.

Für die Anwendung abgelehnt: Sagen Sie das, denn nichts sonst in der Oberfläche wird es tun. Die Nutzenden haben es gewählt, womöglich aus Versehen, und nur Ihre Meldung verbindet das Schweigen mit der Einstellung.

Den Rest nie blockieren

Ein Antippen ist eine Eingabe unter mehreren. Eine Anwendung, die sich weigert, ohne NFC zu starten, hat aus einer Bequemlichkeit eine Voraussetzung gemacht, und wer sie nicht nutzen kann, ist derjenige, der die Alternative gebraucht hätte.

Behalten Sie den Weg von Hand: einen Code zum Eintippen, eine Suche, ein Abscannen, was auch immer der Tag abgekürzt hat. Und entscheiden Sie gesondert, ob die Anwendung sich auf einem Telefon ohne den Funk überhaupt installieren soll, was eine Frage des Stores ist und keine der Laufzeit: Die Seite zum Store nimmt sie auf.

Häufige Fragen

Woher weiß ich, dass das Telefon überhaupt kein NFC hat?

getDefaultAdapter gibt unter Android null zurück, und readingAvailable ist unter iOS falsch. Beides sind Tatsachen des Geräts und keine Einstellungen.

Kann ich NFC aus meiner Anwendung heraus einschalten?

Nein. Sie können die Nutzenden unter Android zum Einstellungsbildschirm für NFC schicken; der Schalter gehört ihnen.

Warum kommt nichts an, obwohl NFC an ist?

Ab Android 16 können Nutzende Tag-Absichten für eine Anwendung ablehnen. isTagIntentAllowed meldet es, und nichts sonst in der Oberfläche wird es tun.

Soll die Anwendung ohne NFC den Dienst verweigern?

Nein. Behalten Sie den Weg von Hand und lassen Sie den Rest der Anwendung arbeiten. Ob sie sich überhaupt installiert, ist eine gesonderte Entscheidung auf der Ebene des Stores.