Android NFC-Entwicklung
NFC wird bei Android seit Version 2.3 unterstützt, genauer seit API Level 9 und wurde mit dem Entwicklergerät Google Nexus S eingeführt. Damit ist NFC schon länger ein Kernbestandteil der Android API und dementsprechend ist die Dokumentation ausgereift und enthält zahlreiche Beispiele ist aber nicht die einzige Möglichkeit NFC-Anwendungen für Android zu entwickeln, weshalb wir nachfolgend einen Überblick geben möchten.
NFC-Anwendungen für Android entwickeln
NFC Entwicklung mit dem Android SDK
Die Dokumentation des Android SDK ist über mehrere Generationen gewachsen. Anfangs nur eine Sammlung der entsprechenden Klassendokumentationen stehen mittlerweile ausführliche Beispiele zum Nachlesen und ausprobieren zur Verfügung. Im Zusammenspiel mit der Android IDE oder alternativ Eclipse mit dem Android SDK-Plugin findet sich ein schneller Einstieg in die Entwicklung.
Im Bezug auf NFC enthält die Android Dokumentation ein einführenden Abschnitt zur NFC-Entwicklung, welcher NFC-Grundlagen und fortgeschrittene Themen erläutert. Im Detail können die API-Funktionen in der Methodendokumentation nachgelesen werden. Eine Praxisanwendung der NFC-Funktionen kann direkt anhand eines NFC-Anwendungsbeispiels ausprobiert werden. Im Wesentlichen sind nur folgende Schritte nötig, um z.B. NFC-Tags lesen zu können:
- Die Anwendung muss die nötigen Permissions für den Zugriff auf die NFC-Funktion besitzen
- Wird ein NFC-Tag erkannt, muss eine entsprechende Methode auf das Event reagieren und den Input verarbeiten
Soll eine Anwendung entwickelt werden, die nur auf spezielle NFC-Tags reagiert, bietet es sich an einen eigenen Mime-Type zu definieren und diesen als Filter in der Konfiguration zu hinterlegen. So reagiert die Anwendung nur auf Tags, die nach Vorgabe erstellt wurden. Zusammengefasst bietet die Android Entwicklerdokumentation einen guten Einstieg für alle Standardfälle, die im NFC-Betrieb anfallen.
NFC Entwicklung unter Android mit externen NFC-Readern
Leider besitzen nicht alle Android Smartphones einen integrierten NFC-Reader, auch wenn sich dies zunehmend verbreitet. Doch insbesondere bei Tablets wird dieser ausgelassen. Hier besteht die Möglichkeit einen externen NFC-Reader per USB-Anschluss nachzurüsten. Statt auf die Android-API zuzugreifen wird bei dieser Variante der PC/SC Standard verwendet. Die Kollegen von SpringCard demonstrieren in einem Blogeintrag die Verwendung der PC/SC Schnittstelle mit einem externen Reader. Auf Github finden sich zudem weitere Beispiele.
Zusammengefasst lässt sich festhalten, dass die NFC-Funktion durch externe Lesegeräte auch bei Android nachgerüstet werden kann. Hierbei entfällt zwar die Möglichkeit die nativen Android APIs zu verwenden, ermöglichst aber eine flexiblere Gerätewahl. Die jeweilige Anwendung muss sich um die Integration des Readers kümmern. Geeignet sind grundsätzlich alle NFC-Reader, die den PC/SC Standard erfüllen.