タグ方式を使ってみた
byte[] tagId = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);
しかし、タグを読み取るたびに値が変わります。
正しい ISO15693 タグ ID を読み取るにはどうすればよいですか?
バイト配列を取得したら、16 進バイト配列を文字列に変換する必要があります。
この機能を試してください:
public String getHexString(byte[] b) {
StringBuffer sb = new StringBuffer();
for (int i=b.length-1; i >= 0; i--){
sb.append(Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();
}
以下を使用してみてください
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
byte[] id = tagFromIntent.getId();
タグ識別子を取得します (ある場合)。タグ識別子は、衝突防止と識別に使用される低レベルのシリアル番号です。ほとんどのタグには安定した一意の識別子 (UID)がありますが、一部のタグは検出されるたびにランダム ID (RID) を生成し、 ID をまったく持たないタグもあります (バイト配列のサイズはゼロになります)。