首頁 >Java >java教程 >如何使用enableReaderMode API將NDEF記錄寫入NFC標籤?

如何使用enableReaderMode API將NDEF記錄寫入NFC標籤?

Patricia Arquette
Patricia Arquette原創
2024-11-12 20:38:02279瀏覽

How to Write NDEF Records to an NFC Tag Using enableReaderMode API?

如何將NDEF 記錄寫入NFC 標籤

了解問題

了解問題
  1. 使用所需資料編寫 NDEF 訊息。
辨識並連接到 NFC 標籤。

將NDEF訊息寫入標籤。

使用enableReaderMode API寫入NDEF記錄

    先前使用基於Intent的NFC操作的方法引入了限制和使用者體驗問題。為了解決這些問題,建議的新方法是使用enableReaderMode API。
  • 此 API 提供對 NFC 讀取器的直接控制,讓您:
  • 關閉系統通知聲音
防止應用程式在讀取操作期間暫停

靜默處理錯誤並在寫入作業成功時提供回饋

範例實作
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
                }
            }
        }
    }
}

範例實作 以下是實作此方法的程式碼片段:此方法可確保更可靠且使用者友善的 NFC 書寫體驗。

以上是如何使用enableReaderMode API將NDEF記錄寫入NFC標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn