NFC从getParcelableArrayExtra读取Android Java-null对象(NfcAdapter.EXTRA\u NDEF\u消息)
我正在尝试实现一个简单的Android应用程序来读取NFC标签。 我按照官方文档()实际实现了一个几乎与“codexpedia”->创建的应用程序相同的应用程序 当标签靠近智能手机时,onNewIntent方法是call,但是,当我试图通过方法获取数据时,我总是得到null 您可以在以下直接链接中找到导致问题的代码NFC从getParcelableArrayExtra读取Android Java-null对象(NfcAdapter.EXTRA\u NDEF\u消息),java,android,nfc,Java,Android,Nfc,我正在尝试实现一个简单的Android应用程序来读取NFC标签。 我按照官方文档()实际实现了一个几乎与“codexpedia”->创建的应用程序相同的应用程序 当标签靠近智能手机时,onNewIntent方法是call,但是,当我试图通过方法获取数据时,我总是得到null 您可以在以下直接链接中找到导致问题的代码 有人知道为什么会发生这种情况吗?ndefforformable技术意味着一旦格式化,卡就能够存储Ndef消息 所以基本上这张卡上没有Ndef信息,一旦它被格式化并放上Ndef信息,代
有人知道为什么会发生这种情况吗?
ndefforformable
技术意味着一旦格式化,卡就能够存储Ndef消息
所以基本上这张卡上没有Ndef信息,一旦它被格式化并放上Ndef信息,代码就可以读取这张卡了
您可以使用NFC tools或NXP TagWriter应用程序等应用程序格式化和添加Ndef消息
格式化后,应显示NfcV、Ndef
技术
代码中的错误
第80行-IntentFilter tagDetected=新的IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED)代码>
应该是
IntentFilter tagDetected=新的IntentFilter(NfcAdapter.ACTION\u NDEF\u DISCOVERED)代码>
由于它假设所有卡都有Ndef消息可读取,因此未格式化卡、银行卡、大量运输卡等并非如此
第91至93行-if(NfcAdapter.ACTION_TAG_DISCOVERED.equals(ACTION)| NfcAdapter.ACTION_TECH_DISCOVERED.equals(ACTION)| NfcAdapter.ACTION_NDEF_DISCOVERED.equals(ACTION)){
应该是
if(NfcAdapter.ACTION\u NDEF\u DISCOVERED.equals(ACTION)){
标签上有Ndef消息吗?使用NFC tools或NXP Taginfo App之类的应用程序检查标签上有什么。如果标签上没有Ndef消息,则该方法将返回null。因为链接的代码设置为使用操作检测标签上没有Ndef消息的标签,然后假设它们是Nd如果我试图从PlayStore(NFC Writer)上的另一个应用程序读取标签,ef功能(因此代码中有一个bug)我看到了以下内容:技术:NfcV,可解析DSF ID 0
,响应标志0
,最大收发长度253字节
。我假设它实际上说它包含一条Ndef消息?好的,非常感谢。还有一个问题:我可以请你也建议修改吗(或者链接到一个“简单”的链接)准备好的项目或文档链接)这可以帮助我理解如何读取每种格式?再次感谢您非常有用的支持我已经建议了修改,以修复codexpedia示例中的错误,因此它只尝试从带有Ndef消息的卡读取Ndef消息。有太多其他数据格式,如Ndef,无法记录。NfcV等低级卡类型记录在。您通常也可以从您试图阅读的卡的数据表中了解低级卡类型访问,但由于您没有指定卡的品牌和型号,我无法向您指出。