# NFC

支持 HCE(基于主机的卡模拟)模式,即将安卓手机模拟成实体智能卡。 支持 NFC 读写,即手机作为读卡器使用。

  • 适用机型:支持 NFC 功能,且系统版本为 Android 5.0 及以上的手机
  • 适用卡范围:符合 ISO 14443-4 标准的 CPU 卡
  • 支持 Reader / Writer(读取器 / 写入器)模式,即支持 NFC 设备读取或写入被动 NFC 标签和贴纸
  • 适用机型:支持 NFC 功能,且系统版本为 Android 5.0 及以上的手机
  • 适用范围:
    • 支持 NFC-A (ISO 14443-3A) / NFC-B (ISO 14443-3B) / NFC-F (JIS 6319-4) / NFC-V (ISO 15693) / ISO-DEP (ISO 14443-4) 标准的读写
    • (部分 Android 手机)支持 MIFARE Classic / MIFARE Ultralight 标签的读写
    • 支持对 NDEF 格式的 NFC 标签上的 NDEF 数据的读写

# 基本流程

以往 NFC-A 卡片写入 apdu 指令为例

  • 调用 wx.getNFCAdapter() 获取 NFC 适配器实例
  • 调用 NFCAdapter.onDiscovered(function callback) 注册贴卡监听回调
  • 调用 NFCAdapter.startDiscovery(Object object) 开始监听贴卡
  • 贴卡,onDiscovered 回调
    • 根据 onDiscovered 回调 res 对象的 techs 字段匹配到卡片支持 NFC-A 标准
    • 通过 NFCAdapter.getNfcA() 获取 NfcA 实例
  • 使用 NfcA 实例进行读写
    • 调用 NfcA.connect() 和 NFC 卡片建立连接
    • 调用 NfcA.transceive(Object object) 往 NFC 卡片写入 apdu 指令并接收卡片返回数据
    • 读写完毕,调用 NfcA.close() 断开连接
  • 调用 NFCAdapter.stopDiscovery(Object object) 结束监听贴卡

# NFC 标签打开小程序

除了上述的小程序基础 NFC 能力,微信还支持通过 NFC 卡片快捷拉起小程序页面的能力。可用于智能设备的快速配网、快捷控制等场景。

详细文档请参考:NFC 标签打开小程序