【Android】NFCを2度と書き込めないように読み取り専用にする【NFC】

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Android】NFCを2度と書き込めないように読み取り専用にする【NFC】

2022-9-27 | , ,

AndroidでNFCを2度と書き込めないように読み取り専用にしたい!

概要

今回の記事では、AndroidでNFCを2度と書き込めないように読み取り専用にする手順を掲載する。

NFCの種類によってはロックできないかもしれないです。

仕様書

環境

  • Android Studio Chipmunk 2021.2.1 Patch 2
  • Java 1.8(8)

手順書

ActivityonCreateの中などでNfcAdapterをインスタンス化しつつ、コールバック用のクラスを設定したりしつつ。下記は例です。

    NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
    nfcAdapter.enableReaderMode(MainActivity.this, new NfcReaderCallback(), NfcAdapter.FLAG_READER_NFC_F | NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_NFC_B | NfcAdapter.FLAG_READER_NFC_V, null);

コールバック用のクラス。
NDEFに接続してNFCの書き込みを読み取り専用にするサンプル。

    private class NfcReaderCallback implements NfcAdapter.ReaderCallback
    {
        @Override
        public void onTagDiscovered(Tag tag)
        {
            Ndef ndef = Ndef.get(tag);

            try
            {
                ndef.connect();
                // 現在読み取っているNFCを読み取り専用にできるのか判定する
                if (ndef.canMakeReadOnly())
                {
                    // NFCを読み取り専用にする
                    ndef.makeReadOnly();
                }
                    }
                    ndef.close();
            } catch (Exception e) {
                Log.d("NFC Exception", e.getMessage());
            }
        }

まとめ(感想文)

いたずら防止に。

PR

テスト用に使ってるNFCラベル。
安いけど問題なし!オススメ!!
50枚入り。1枚40円。(2022年9月時点)