1

我在搞乱一些标签(Mifare 经典)

我已经用 nxp 应用程序 tagwriter 以纯文本形式将消息写入标签。

以下代码是我到目前为止所拥有的:

 ** 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,但是我如何确定哪个记录是我需要的记录?

4

2 回答 2

2

第一条消息的第一条记录的简单示例:

NdefRecord[] recs = msgs[0].getRecords();
byte[] type = recs[0].getType();
byte[] value = recs[0].getPayload();

当您知道类型时,您可能能够解释value字节。

于 2012-05-02T21:20:53.830 回答
-1

Android 内置 SDK 目前几乎不支持解析 NDEF 消息和记录。

我已经编写了一个Eclipse 插件,用于在 Android 上开始使用 NFC(NDEF),它基于nfctools,它可以读取和写入各种 NDEF 记录,如上面的 NdefMessage - 所以你会看到 POJO 而不是字节数组 :-)

还可以尝试Android 的 NDEF 工具

于 2012-05-02T12:27:11.377 回答