如何解决Android NFC 在不同设备上以相同方式发送数据
我正在为 Android 设备开发 NFC 库。在某些 Android 设备上,发送的数据可以正常工作,并且我得到了正常的响应(例如 LG 手机),但在其他一些设备(例如 Oppo 手机)上却不起作用。
适用于符合 ICAO 标准的护照和身份证阅读器。
我以十六进制发送的示例命令:0082000028523A9AE020BF2B637771344671E7A444DABDE99BBE84835F5B1552963D69623B3DD77D609A3A22E62
它返回一个数据 + 0x9000 作为结果。
在发送此命令之前,我有几个步骤:
- 0x00、0xA4、0x04、0x0C、0x07、0xA0、0x00、0x00、0x02、0x47、0x10、0x01
- 0x00、0x84、0x00、0x00、0x08
- 第三步是命令导致错误
我已经检查过 Oppo 的 log cat
2021-07-26 15:11:51.982 994-4950/? D/NxpTml: PN54X - Write requested.....
2021-07-26 15:11:51.982 994-4950/? D/NxpTml: PN54X - Invoking I2C Write.....
2021-07-26 15:11:51.985 994-4949/? D/NxpTml: PN54X - I2C Read successful.....
2021-07-26 15:11:51.985 994-4949/? D/NxpTml: Delay Read if write thread is busy
2021-07-26 15:11:51.985 994-4950/? D/NxpNciX: len = 49 > 00002E0082000028523A9AE020BF2B637771344671E7A444DABDE99BBE84835F5B1552963D69623B3DD77D609A3A22E628
2021-07-26 15:11:51.985 994-4950/? D/NxpTml: PN54X - I2C Write successful.....
2021-07-26 15:11:51.985 994-4950/? D/NxpTml: PN54X - Posting Fresh Write message.....
2021-07-26 15:11:51.985 994-4950/? D/NxpTml: PN54X - Tml Writer Thread Running................
我使用了 2 台不同设备的相同 Android 版本,没问题。
我实际上不知道找出我遗漏的重点是什么。我完全愿意接受任何建议。 (比如它是否与我发送的数据大小有关,我是否应该向清单添加一组规则?)
谢谢!
========================
编辑:我添加了我的 NFCAdapter 设置
val adapter = NfcAdapter.getDefaultAdapter(this)
if (adapter != null) {
val intent = Intent(applicationContext,this.javaClass)
intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
val pendingIntent =
PendingIntent.getActivity(this,intent,PendingIntent.FLAG_UPDATE_CURRENT)
val filter = arrayOf(arrayOf("android.nfc.tech.IsoDep"))
adapter.enableForegrounddispatch(this,pendingIntent,null,filter)
}
现在我正在尝试将 enableReaderMode 添加到适配器。当我添加它时,它目前无法发现我的标签。我会尽快更新我的状态。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。