Lire les données de tag NFC (IsoDep)
Je suis novice sur Android NFC API.
Actuellement, j'ai un tag NFC, je fais une application Android pour lire des données à partir d'elle. Mon simple Application est lancée lorsque mon téléphone se rapprocher assez pour le Tag NFC. Mais je n'ai aucune idée de comment lire les données à l'intérieur de la Balise NFC. La balise utilise IsoDep de la technologie.
Mon code actuel:
@Override
protected void onResume (){
super.onResume();
Intent intent = getIntent();
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
IsoDep isoDep = IsoDep.get(tag);
//How to read data from IsoDep instance?
J'ai cherché sur internet, je remarque que les gens sont à envoyer des commandes à IsoDep
pour obtenir de réponse de Tag NFC, je suppose, à partir de la réponse, nous pouvons analyser les données de la balise, j'ai vu des gens le faire:
//What is the 'command' ? How to define the command?
//e.g.:
byte command = (byte) 0x6A
isoDep.transceive(command)
Mais, la commande est juste un byte
, comme un débutant, il est trop difficile de comprendre ce qui se passe. Je n'ai aucune idée de la façon de définir la commande pour lire les données? Quelqu'un peut m'expliquer? ou est-il un document que j'ai appris au sujet de la commande?
En général, j'ai besoin de quelques conseils sur la façon de définir les commandes & comment analyser les données de réponse, je voudrais lire les données stockées dans la Balise & afficher les données dans un format de Chaîne dans l'élément de l'INTERFACE utilisateur (par exemple,TextView
).
**** * *
Je n'ai aucun problème avec ceux de configuration(par ex. AnroidManifest.xml), merci de ne pas me guider sur la façon de configurer 🙂
OriginalL'auteur Mellon | 2013-05-29
Vous devez vous connecter pour publier un commentaire.
IsoDep vous permet de communiquer sur un ISO-14443-4 connexion avec le
transceive
opération. Sur ce protocole de demande de données des unités (unités apdu) sont échangés. Le format est spécifié, vous trouverez une description sur Wikipedia.Pour exaple, pour sélectionner une application sur une carte à puce avec un identificateur d'application (de l'AIDE), vous exécutez les opérations suivantes APDU de commande. Le résultat indique simplement ok (9000) ou une erreur.
Après l'application a été sélectionné, vous pouvez exécuter l'application des commandes spécifiques. Les programmes sont généralement écrites en JavaCard qui suit la GlobalPlatorm spec. L'exemple suivant exécute sur l'sélectionnés ci-dessus l'application de la méthode 4 (0x04) qui renvoie un tableau d'octets de plus de 11 octets. Ce résultat est ensuite convertie en une chaîne de caractères.
Le résultat d'un APDU message contient les données de réponse (application spécifique), suivie par la réponse de la remorque SW1-SW2 qui code pour le traitement de la commande, par exemple par exemple 0x9000 pour le succès. Toute structuration des données de réponse est spécifique à l'application (typcially un VS l'encodage est utilisé).
Hey Dominik, pourquoi avez-vous choisi la "méthode 4" Pourrait-il être n'importe quel octet?
oui, ça pourrait être n'importe quelle autre instruction. La disposition des instructions sont définies par la carte à puce de l'application, ainsi que les paramètres à utiliser.
OriginalL'auteur Dominik