Comment écrire des enregistrements NDEF sur une balise NFC
Comprendre le problème
NDEF, ou Le format d'échange de données NFC est utilisé pour stocker des données sur des balises NFC. Pour écrire des enregistrements NDEF sur une balise NFC, vous devez :
Écrit des enregistrements NDEF à l'aide de l'API activateReaderMode
L'approche précédente consistant à utiliser des opérations NFC basées sur l'intention introduisait des limitations et des problèmes d’expérience. Pour résoudre ces problèmes, l'approche la plus récente et recommandée consiste à utiliser l'API activateReaderMode.
Cette API fournit un contrôle direct sur le lecteur NFC, vous permettant de :
Exemple de mise en œuvre
Vous trouverez ci-dessous un extrait de code qui implémente cette approche :
public class NFCActivity extends AppCompatActivity implements NfcAdapter.ReaderCallback { private NfcAdapter mNfcAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_nfc); mNfcAdapter = NfcAdapter.getDefaultAdapter(this); } @Override protected void onResume() { super.onResume(); if (mNfcAdapter != null) { Bundle options = new Bundle(); options.putInt(NfcAdapter.EXTRA_READER_PRESENCE_CHECK_DELAY, 250); mNfcAdapter.enableReaderMode(this, this, NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_NFC_B | NfcAdapter.FLAG_READER_NFC_F | NfcAdapter.FLAG_READER_NFC_V | NfcAdapter.FLAG_READER_NFC_BARCODE | NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS, options); } } @Override public void onTagDiscovered(Tag tag) { Ndef mNdef = Ndef.get(tag); if (mNdef != null) { NdefRecord mRecord = NdefRecord.createTextRecord("en", "English String"); NdefMessage mMsg = new NdefMessage(mRecord); try { mNdef.connect(); mNdef.writeNdefMessage(mMsg); runOnUiThread(() -> { Toast.makeText(getApplicationContext(), "Write to NFC Success", Toast.LENGTH_SHORT).show(); }); try { Uri notification = RingtoneManager. getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification); r.play(); } catch (Exception e) { // Handle error playing sound } } catch (Exception e) { // Handle errors } finally { try { mNdef.close(); } catch (Exception e) { // Handle error closing tag } } } } }
Cette approche garantit une expérience d'écriture NFC plus fiable et plus conviviale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!