android - 读取 NFC 标签上的 "payload"数据?

标签 android nfc payload

我正在使用以下代码来“读取”一个 nfc 标签:

@Override
protected void onResume () {
    super.onResume();

    // read nfc tag....this is what will "read" the external record?
    if (getIntent().hasExtra(NfcAdapter.EXTRA_TAG)) {

        NdefMessage ndefMessage = this.getNdefMessageFromIntent(getIntent());

        if(ndefMessage.getRecords().length > 0){

            NdefRecord ndefRecord = ndefMessage.getRecords()[0];

            String payload = new String(ndefRecord.getPayload());

            Toast.makeText(this, payload, Toast.LENGTH_SHORT).show();

        }

    }


    enableForegroundDispatchSystem();

}

我收到一个错误,说它“无法解析方法 getNdefMessageFromIntent” 我应该使用另一种方法来“读取”标签上的有效负载吗?不知道如何解决这个问题……感谢您的帮助!!

最佳答案

您可以尝试以下方法:

if (intent.getAction().equals(NfcAdapter.ACTION_NDEF_DISCOVERED)) {
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (rawMsgs != null) { // NDEF Message available
    NdefMessage msg =(NdefMessage) rawMsgs[0];
    NdefRecord ndefRecords = ndefMessage.getRecords(); 

    String payload = new String(ndefRecord[0].getPayload());
    Toast.makeText(this, payload, Toast.LENGTH_SHORT).show();
}

}

关于android - 读取 NFC 标签上的 "payload"数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39668177/

相关文章:

Android - 允许在设备所有者应用程序中安装非市场应用程序失败

api - 使用 JMeter 的 Rest API 中的动态值

iphone - 应用程序在后台运行时获取推送通知的自定义负载

android - 如何使用编程在android中禁用系统通知

java - RxAndroid 和多线程

java - Xperia 光传感器 [Xperia PRO]

android - 哪些带 NFC 的手机完全支持 Mifare Classic(1K 和 4K)卡?

android - 如何使用 phonegap 读取非 ndef NFC 标签的数据

android - 从 NFC 应用程序到 PN532 读卡器的数据传输

http - Flask:使用数组参数实现 HTTP GET