Im Moment habe ich Tablet mit OS Android 2.3.3 anstelle von NFC-Telefon, also muss ich einen externen Kartenleser an das Tablet anschließen. Bitte sagen Sie mir, welchen Kartenleser ich bevorzuge und welcher Treiber benötigt wird, um den Kartenleser mit dem Tablet zu verbinden . Die eingebauten NFC-Bibliotheken unterstützen diesen Reader oder nicht? Danke im Voraus.
Ich habe eine Antwort gefunden, die ACS jetzt bietet Android-Bibliothek und Beispiel-Anwendung für ihre Leser. Sie finden Bibliothek hier und einige Informationen und Video-Demo von Android-unterstützten Lesern ist hier .
Das einzige Problem ist, dass ACS Android-Bibliothek nur Android 3.1 und höher unterstützt. hoffe, es wird dir helfen.
Wenn Sie noch Fragen haben, zögern Sie nicht zu fragen ..
Die integrierte NFC-Bibliothek in Android 2.3 und 4.0 unterstützt nur den NFC-Chip PN544 von NXP Semiconductors. Ich glaube nicht, dass es Kartenleser auf dem Markt gibt, die es verwenden, da dieser Chip speziell für den Einsatz in mobilen Geräten entwickelt wurde. Möglicherweise finden Sie alternative Implementierungen der Android-NFC-API, die jedoch andere NFC-Chips unterstützen.
Ein weiteres Problem kann sein, dass auf Ihrem Tablet wahrscheinlich nicht die erforderlichen NFC-Bibliotheken installiert sind, einschließlich des erforderlichen Systemdienstes (NfcManager). Schließlich verfügt Ihr Tablet über keine NFC-Unterstützung, sodass diese Softwarekomponenten nicht benötigt werden. Daher müsste ein neues ROM-System-Image für Ihr Tablet erstellt werden, das diese Softwarekomponenten enthält.
Die Verwendung eines der vielen gängigen Desktop-Reader ist wahrscheinlich nicht wirklich machbar. Die Erstellung aller notwendigen Software für die Integration in Android ist keine triviale Aufgabe. Es kann einfacher sein, einfach ein Android-Handy mit NFC zu kaufen oder zu warten, wenn ein Android-Tablet mit NFC herauskommt.
Weder Froyo 2.3 (min SDK-Version, die NFC unterstützt) noch Ice Cream Sandwich 4.0 sind mit einer Vielzahl von Chips kompatibel.
Wenn ein Hersteller ein neues Telefon mit einem anderen NFC-Chip startet, hat jemand die Treiber für die Verwendung solcher Chips und die Schnittstelle zu NFC-Klassen von Android erstellt, speziell die NfcManager-Klasse und die NfcAdapter-Klasse, die den lokalen NFC-Adapter darstellt. p>
Im besten Fall könnten Sie das Android NDK verwenden, um Low-Level-C / C ++ - Klassen zu erstellen, um irgendwie den externen NFC-Kartenleser mit Android zu kommunizieren und dann benutzerdefinierte Programmierung mit dem NDK vorzunehmen, um den NfcAdapter auf dem SDK zu erkennen ... und es gibt keine Garantien, dass Sie erfolgreich sein werden.
Und ... wenn Sie darüber nachdenken, zu Ссылка zu gehen und ein Tablet mit NFC-Leser zu importieren, denken Sie zweimal darüber nach, denn das könnte erlaubt Ihnen nicht, alles zu tun, was der NXP Semiconductors Chip mit Android Beam (TM) wie Read / Write macht und unterstützt verschiedene I / O Operationen mit NFC-A, B, F, V oder ISO-DEP.
Um Ihrer Zeit Willen (und weil die Zeit das wertvollste Kapital für jeden heutzutage ist). Ich denke, deine beste Option ist es, ein paar NFC-Telefone wie das Galaxy Nexus S, das DROID Razr, das Xperia S, das HTC Incredible, usw. zu bekommen ... die werden sofort funktionieren, das machen wir.
Hey Sachin, Da Ihr Gerät nicht über NFC verfügt, verfügt es nicht über das NFC-Funkgerät und kann daher keine Verbindung (Lesen oder Schreiben) mit einer NFC-Karte herstellen. Gemäß der NFC-Bibliothek wird NULL immer zurückgegeben, wenn Sie versuchen, NFCAdapter zu erhalten. so brauchen Sie zumindest ein nfc-fähiges Android-Gerät für jedes Experiment.
In meinem Projekt verwendeten wir den Smartcardleser ACR122, der mit einem PC verbunden wird, der nicht mit dem Android-Gerät verbunden ist. Dieser Reader wird verwendet, um ein beliebiges nfc-Tag zu lesen. Ein nfc-fähiges Android-Gerät fungiert als ein nfc-Tag im Kartenemulationsmodus.
Nun zum nächsten Teil der Frage "Die eingebauten NFC-Bibliotheken unterstützen diesen Reader oder nicht".
damit dieser Kartenleser den Kartenwert lesen kann.
Mit einem ACS NFC-Leser ist es möglich:
Hier finden Sie die Dokumentation für die Bibliotheken und Beispielcode. Es scheint jedoch keine Option zum Schreiben von Daten zu geben. Wenn Sie in Ihren NFC-Leser schreiben möchten, verwenden Sie die Sendefunktion, um Byte-Arrays zu senden.
%Vor%Diese Bytes sind die Standard-Lese- und -Schreibbytes für die Sendefunktion. Die vollständige Dokumentation des Standard-NFC-Protokolls finden Sie hier
Beispiel:
%Vor%Slotnum ist die Nummer des Lesers, den Sie verwenden möchten. Wenn ich richtig bin, ist dies immer 0, wenn Sie ein Leser / USB-Gerät verwenden.
Beispielbefehl:
%Vor%DAS ZWEITE BYTE IST DIE SEITENADRES, ZU SCHREIBEN. Seite 4 - 15 sind beschreibbar (Seite 0 und 1 sind die ID, Seite 2 sind Lockbytes und Seite 3 sind OTP. Alle sind READ ONLY).
Die Read-Funktion funktioniert genauso wie die WRITE-Funktion. Senden Sie nur 3 mal eine 0x00 im Array für die richtigen Leseeinstellungen:
%Vor%Das zweite Byte ist die Seite zu lesen.
Das ist ein gutes Thema. Ich gebe den Bedenken von RacZo bezüglich der NFC-Bibliotheksunterstützung in den Alibaba-basierten Tablets Ausdruck. Da NFC-Chipsets in Geräten variieren und einige dubiose oder keine Unterstützung für bestimmte Operationen haben, müssen Sie vorsichtig sein und testen Sie Ihre App zuvor auf diese.
Der ACS-Reader kann eine kostengünstige Lösung sein, und es gibt einige ausgereifte und gut unterstützte Bibliotheken und SDKs, die die Integration mit Android unterstützen. Der Nachteil des externen ACS-Lesers ist die Akkulaufzeit. Weil es den USB-Anschluss monopolisiert, und Android-Tablets nicht erlauben, über einen USB-Anschluss aufzuladen, während ein Peripheriegerät damit verbunden ist. Wenn Ihre Anwendung eine Kiosk- oder Selbstbedienungs-App ist, kann dies ein Problem sein.
Hier gibt es einen guten Post hier über Ihre verschiedenen Möglichkeiten, wenn Sie damit konfrontiert werden Herausforderung. Ohne mehr über Ihre Anwendung zu wissen, ist es schwierig, auf die eine oder andere Weise zu empfehlen.
Etwas zu spät, um hier zu antworten, aber ich habe tatsächlich versucht, einen externen NFC-Leser so nah wie möglich an natives NFC zu implementieren.
Es ist möglich, einen zusätzlichen Dienst hinzuzufügen, aber die reguläre NFC-Initialisierung (NfcAdapter usw.) wird diesen Dienst nicht kennen, daher muss er zusätzlich initialisiert werden.
Das Ergebnis war, dass es technisch nicht möglich ist, den integrierten NFC-Dienst auf einem Aktien-ROM zu ersetzen oder hinzuzufügen - auf "Drop-in-Replacement-Weise".
Die Wiederverwendung einiger nativer NFC-Klassen wie Tag und IsoDep ist möglich.
Als Entwickler einer NFC-App möchten Sie jedoch nicht unbedingt die gleiche Funktionalität wie die integrierte von dem externen Dienst haben. Der externe Leser hat wahrscheinlich mehr Funktionalität und Sie möchten zumindest wissen, ob der Leser angeschlossen ist oder nicht.
Weitere Informationen finden Sie in der externen NFC-API (Hinweis: Es handelt sich nicht um ein vollständig Open-Source-Produkt).
Tags und Links android nfc cardreader