我正在搞乱一些标签(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,但我如何确定哪条记录是我需要的记录?
答案 0 :(得分:1)
第一条消息的第一条记录的简单示例:
NdefRecord[] recs = msgs[0].getRecords();
byte[] type = recs[0].getType();
byte[] value = recs[0].getPayload();
当您知道类型时,您可能能够解释value
个字节。
答案 1 :(得分:-1)
Android内置SDK目前几乎不支持解析NDEF消息和记录。
我在Android上编写了一个Eclipse plugin用于开始使用NFC(NDEF),它基于nfctools,可以读取和写入各种NDEF记录,如上面的NdefMessage - 所以你会看到POJO而不是字节数组: - )