Home >Java >javaTutorial >How to Write NDEF Records to an NFC Tag Using enableReaderMode API?
How to Write NDEF Records to NFC Tag
Understanding the Issue
NDEF, or NFC Data Exchange Format, is used to store data on NFC tags. To write NDEF records to an NFC tag, you need to:
Writing NDEF Records Using enableReaderMode API
The previous approach of using Intent-based NFC operations introduced limitations and user experience issues. To address these, the newer and recommended approach is to use enableReaderMode API.
This API provides direct control over the NFC reader, allowing you to:
Example Implementation
Below is a code snippet that implements this approach:
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 } } } } }
This approach ensures a more reliable and user-friendly NFC writing experience.
The above is the detailed content of How to Write NDEF Records to an NFC Tag Using enableReaderMode API?. For more information, please follow other related articles on the PHP Chinese website!