0

メンバーシップ カード ソリューションとして NTAG203 NFC チップを検討しており、各カードに一意の ID を設定して書き込むつもりです。

奇妙なことに、書き込み保護された NTAG203 チップが販売されているのを見つけることができますが、NTAG203 チップを書き込み保護する方法についてオンラインで見つけることができません。書き込み保護サービスを提供するアプリも見ました。

NTAG203 で書き込み保護を有効にするために Android アプリをどのようにコーディングしますか?

ありがとう!

(明確にするために編集された質問)

4

1 に答える 1

1

はい、可能です。NTAG203 (データシート) は、ISO/IEC 14443 Type A (「NFC-A」) タグであり、NFC Forum Type 2 Tag Operation 仕様に準拠しています。このようなタグの物理的な書き込み保護機能を有効にするには、ロック ビットを設定する必要があります。

Android では、NfcAタグ ハンドルのテクノロジー コネクタ クラスのインスタンスを取得することで、このようなタグにアクセスできます。

Tag tag = ...  // I assume you already received the tag handle by means of an NFC discovery intent
NfcA nfcA = NfcA.get(tag);
if (nfcA != null) {
    // this is an NFC-A tag
    ...

NTAG203 のロック ビットは、ページ 2 ( 0x02) バイト 2 ~ 3 およびページ 40 ( 0x28) バイト 0 ~ 1 にあります。これらの 4 バイトの各ビットは、NTAG203 メモリ領域の特定のページのロック状態を制御します。ロックを有効にするには、ロック ビットを'1'含むページに対して書き込みコマンドを発行して、ロック ビットを に設定する必要があります。したがって、タグ全体をロックする最も単純なシナリオでは、次のようにすることができます。

    // connect to the tag
    nfcA.connect();

    byte[] result;
    // write all-ones to the lock bits on page 0x02
    result = nfcA.transceive(new byte[]{
            (byte)0xA2,  // Command: WRITE
            (byte)0x02,  // Address: page 0x02 (2)
            (byte)0x00, (byte)0x00, (byte)0xFF, (byte)0xFF  // Data: set bytes 2-3 to all '1'
    });
    // write all-ones to the lock bits on page 0x28
    result = nfcA.transceive(new byte[]{
            (byte)0xA2,  // Command: WRITE
            (byte)0x02,  // Address: page 0x28 (40)
            (byte)0xFF, (byte)0x11, (byte)0x00, (byte)0x00  // Data: set byte 0 and lock bits in byte 1 to all '1'
    });

    nfcA.close();
于 2015-01-23T16:30:36.923 に答える