我尝试制作一个与非标准ISO15693(NFC-V)标签通信的Android应用程序。
标记是非标准的,因为它没有实现ISO“Inventory”命令。 但其他命令可以与NfcV“收发”一起使用。 Android 4.0.1不会自动发现此标记,也不会向我的应用程序发送意图(在其有效负载中带有“Tag”对象)。这不是问题 - 我知道标签就在那里,我可以“手动”启动应用程序。
我的问题是我需要一个“Tag”对象来使用“收发”方法进行通信。该“Tag”对象通常由操作系统生成。要创建我自己的“Tag”对象,我需要一个“serviceHandle”(整数,可能类似于文件句柄)和“tagService”(是指设备驱动程序或操作系统函数的链接?)。我找不到获得这些会员的方法!我的问题是:
如何构建“Tag”对象以使用NfcV“收发”?
或者:
有没有办法控制NfcAdapter以启用ISO15693(NfcV)并收发原始命令?
答案 0 :(得分:1)
要发现NfcV标签,Android设备中的NFC芯片会发送ISO15693 Inventory命令。当标签响应时,NFC软件堆栈将为标签创建一个句柄,Android中的NFC服务用于创建Tag
对象。因此,如果没有NFC软件堆栈已知的实际标记,则无法创建Tag
对象。
根据ISO15693,必须支持库存命令。所以我的结论是您的标签不符合ISO15693标准,但不幸的是,Android NFC API不支持此标签。