Vous n'êtes pas connecté. Connexion
|
Page modifiée à 23:28, 18 Déc 2014 par EdouardAmosse
Lecture et Ecriture de tags NFC avec AndroidDe $1Table des matièresaucun titreDans cette séance, nous allons modifier l'application des séances précédentes afin d'y intégrer la technologie NFC. Nous nous limiterons uniquement au mode de lecture/ecriture de tag. A la fin de l'inscription d'un utilisateur, le serveur renvoie un numéro qui identifie de manière unique l'utilisateur sur le serveur; dans un premier tems, nous allons récupérer ce numéro l'écrire sur un tag NFC (le message est à écrire au format NDEF). Dans un second temps, nous allons modifier l'activité (afficher) afin de lire l'identifiant de l'utilisateur dans un tag et récupérer les informations sur le serveur avant de l'afficher. Modification du Manifest
<uses-feature android:name="android.hardware.nfc" android:required="true"/>
<uses-permissionandroid:name="android.permission.NFC"></uses-permission> Ajoutez une nouvelle activité à votre application (TagWriterActivity). Cette activité sera destinée à écrire des informations sur un tag NFC. Après avoir inscrit un utilisateur sur le serveur, vous récupérerez l'identifiant unique renvoyé par le serveur puis vous appelerez l'activité créée précedemment en lui passant en paramètre l'identifiant à écrire sur le tag. Dans l'activité déclarez un attribut de type NfcAdapter NfcAdapter mNfcAdapter; Surchagez la méthode onResume de l'activité pour activez la découverte de tag @Override protected void onResume() { super.onResume(); //Recupérez le lecteur NFC par défaut (normalement c'est celui qui est intégré au téléphone) mNfcAdapter = NfcAdapter.getDefaultAdapter(this); // Handle all of our received NFC intents in this activity. mNfcPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); // Nous voulons découvrir deux types de tag //1) Ceux qui sont formattés NDEF IntentFilter ndefDetected = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); try { ndefDetected.addDataType("text/plain"); } catch (IntentFilter.MalformedMimeTypeException e) { } mNdefExchangeFilters = new IntentFilter[] { ndefDetected }; // Et ceux qui ne sont pas encore formattés IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED); mWriteTagFilters = new IntentFilter[] { tagDetected }; //Maintenant nous indiquons au capteur de nous notifier à la decouverte de ces deux types de tags mNfcAdapter.enableForegroundDispatch(this, mNfcPendingIntent, mNdefExchangeFilters, null); } |
|
Powered by MindTouch Deki Open Source Edition v.8.08 |
Affichage Détails: