我弄乱了一些标签(Mifare classic)
我已经使用nxp应用程序标签编写器向标签编写了一条纯文本消息。
以下代码是我到目前为止拥有的代码:
** Called when a new nfc interaction/intent is fired */
public void onNewIntent(Intent intent) {
NdefMessage[] msgs = null;
if(intent.equals(NfcAdapter.ACTION_NDEF_DISCOVERED)){
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if(rawMsgs!=null){
msgs = new NdefMessage[rawMsgs.length];
for(int i=0;i<rawMsgs.length;i++){
msgs[i] = (NdefMessage) rawMsgs[i];
}
}
} else {
Log.e(TAG, "Other intent then NDEF_DISCOVERED");
}
我不知道从这一点上去哪里,有人可以指出我正确的方向吗?
我想读取这些消息中的值,我已经知道 ndefmessage 包含 ndefrecords,但是我如何确定我需要的记录是哪条记录?
第一条消息的第一条记录的简单示例:
NdefRecord[] recs = msgs[0].getRecords();
byte[] type = recs[0].getType();
byte[] value = recs[0].getPayload();
当您知道类型时,您也许能够解释value
字节。
Android 内置 SDK 目前几乎不支持解析 NDEF 消息和记录。
我写了一个Eclipse插件,用于在Android上开始使用NFC(NDEF),它基于nfctools,它可以读写各种NDEF记录,如上面的NdefMessage - 所以你会看到POJO而不是字节数组:-)
还可以尝试适用于Android的NDEF工具。