Heim >Java >javaLernprogramm >Wie schreibe ich NDEF-Datensätze mithilfe der enableReaderMode-API in ein NFC-Tag?
So schreiben Sie NDEF-Datensätze in ein NFC-Tag
Das Problem verstehen
NDEF, oder NFC Data Exchange Format wird zum Speichern von Daten auf NFC-Tags verwendet. Um NDEF-Datensätze auf ein NFC-Tag zu schreiben, müssen Sie:
Schreiben von NDEF-Datensätzen mithilfe der enableReaderMode-API
Der bisherige Ansatz der Verwendung absichtsbasierter NFC-Operationen führte zu Einschränkungen und Benutzereinschränkungen Erfahrungsprobleme. Um diese zu beheben, besteht der neuere und empfohlene Ansatz darin, die API „enableReaderMode“ zu verwenden.
Diese API ermöglicht die direkte Steuerung des NFC-Lesegeräts und ermöglicht Ihnen:
Beispielimplementierung
Unten finden Sie einen Codeausschnitt, der diesen Ansatz implementiert:
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 } } } } }
Dieser Ansatz sorgt für ein zuverlässigeres und benutzerfreundlicheres NFC-Schreiberlebnis.
Das obige ist der detaillierte Inhalt vonWie schreibe ich NDEF-Datensätze mithilfe der enableReaderMode-API in ein NFC-Tag?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!