dre*_*rek 6 android nfc ios flutter core-nfc
我正在使用 Flutter 开发一个 Android+iOS 应用程序,它有几个用户交互屏幕和 NFC 屏幕。
在 NFC 屏幕上,用户连续点击手机(就像我们处理 Android 波束数据传输一样):一部手机是 Android 手机,它运行应用程序并发送 NFC NDEF 消息,就像本例中一样。
在第二部手机上,带有 NFC 屏幕的“我的应用程序”正在运行,并使用nfc_in_flutter(flutter 中只有 3 个 nfc 插件,这是当前似乎唯一维护的插件)读取 NDEF 并显示在屏幕上。
这种情况在 Android 设备上运行良好,但是在 iOS 设备上,当我点击 Android 设备时,什么也没有发生。它不读。
我使用 iOS 设备测试了简单的 NFC 标签(不是 Android 设备),它读取了标签。有人可以解释一下原因是什么吗?
以下是我的假设,如果我错了,请纠正我:由于iOS仅支持NDEF格式而不支持HCE,所以我应该将NDEF从Android发送到iOS。
我对主机卡模拟的了解:
为了使设备像卡一样工作(或使用 HCE),应用程序需要创建 HostApduService。当此服务运行时,手机(以及应用程序本身)能够识别阅读器,如果一切正常,它会发送有效负载。消息的格式是 IsoDep(不是 NDEF)。
另一方面,阅读器端发送 ADPU 来建立连接,如果正常,则接收有效负载。
在上面的示例中,发送方创建 NDEF 消息,并且不充当卡 (HCE),因为没有创建 HostApduService。
那么,如果 iOS 支持 NDEF 消息,为什么 iOS 设备不读取 Android 设备上的消息呢?
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |