ホームページ > Java > &#&チュートリアル > enableReaderMode API を使用して NDEF レコードを NFC タグに書き込む方法

enableReaderMode API を使用して NDEF レコードを NFC タグに書き込む方法

Patricia Arquette
リリース: 2024-11-12 20:38:02
オリジナル
216 人が閲覧しました

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

NDEF レコードを NFC タグに書き込む方法

問題の理解

NDEF、またはNFC データ交換フォーマットは、NFC タグにデータを保存するために使用されます。 NDEF レコードを NFC タグに書き込むには、以下を行う必要があります。

  1. 必要なデータを含む NDEF メッセージを作成します。
  2. NFC タグを識別して接続します。
  3. NDEF メッセージをtag.

enableReaderMode API を使用した NDEF レコードの書き込み

インテントベースの 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート