You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中13.5MHz RFID阅读器读取NFC标签的协议适配问题

13.5MHz NFC标签读取的协议问题及代码修正建议

核心结论

13.5MHz NFC标签本身遵循NFC标准协议(如ISO 14443A/B、ISO 15693等),但如果使用的是外接RFID阅读器(而非手机自带NFC模块),必须遵循该阅读器的专属通信协议,不能直接套用Android系统自带的NFC检测逻辑。

你的代码问题所在

从代码里的serialPort、stopSerialIoManager能看出,你用的是外接串口RFID阅读器,但标签检测逻辑却依赖Android系统的NfcAdapter.ACTION_TAG_DISCOVERED——这是手机自带NFC模块的触发机制,和外接阅读器完全不匹配,所以阅读器无法识别标签是必然结果。

正确处理方向

若使用外接RFID阅读器

  • 删除系统NFC的Intent监听逻辑,转而通过串口与阅读器通信:
    • 按照阅读器厂商提供的文档,发送扫描指令触发标签读取
    • 监听串口返回的数据,解析阅读器传回的标签ID或内容

若使用手机自带NFC模块读标签

  • 检查标签类型:如果是MIFARE Classic这类非NDEF标签,不能直接用NDEF读取逻辑,需用MifareClassic类操作
  • 优化Intent过滤:将ACTION_TAG_DISCOVERED替换为更精准的ACTION_NDEF_DISCOVERED(针对带NDEF数据的标签)或ACTION_TECH_DISCOVERED(需要在Manifest中注册支持的NFC技术类型,比如MifareClassic)
  • 确认supportsDesiredTechnology方法是否正确判断了标签支持的技术,比如是否包含Ndef或MifareClassic的类名

额外提醒

  • 先明确标签具体类型(如MIFARE Ultralight、NTAG等),不同类型对应的读写API存在差异
  • 若是外接阅读器,务必获取厂商的通信协议文档,其中会明确扫描指令、数据返回格式等关键信息

内容的提问来源于stack exchange,提问作者Wan Ammar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 21:18:14