【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月時点)