三星设备 nfc 模式和主机卡模拟

Samsung device nfc mode and host card emulation

感谢阅读这个问题。祝你有个美好的一天。

我目前正在开发一个 NFC 主机应用程序,它可以生成一个包含我要传输的数据的 NFC。但我对三星设备中 NFC 模式的详细信息感到困惑。

如您所知,三星设备在NFC方面有两种模式,标准模式和卡片模式。我以为标准模式提供了基本的NFC功能,比如生成NFC和读取NFC,而卡模式用于Samsung pay。但是有些帖子说卡片模式实际上是卡片模拟模式。我想知道这个“卡”模拟模式是否与主机“卡”模拟有任何关系,或者它只是三星支付“卡”。

长话短说,

  1. 对于三星设备中的 HCE,我必须使用哪种 NFC 模式?
  2. 如果我必须为 HCE 使用卡模式,我可以检查 NFC 卡模式是否打开?

(NfcAdapter.isEnabled() 检查标准模式 NFC 是否打开,卡模式是否被认为 NFC 关闭使用此方法)

我的三星设备没有 2 种独立的 NFC 模式,但有 2 种不同的 NFC 功能 - 仿真卡或 Reading/Writing 到卡。但是这些功能并不相互排斥,它们是一起启用的。

它确实有 2 个位置可以进行卡模拟,第一个是在 NFC 的芯片安全元件(一个独立的 CPU)或主机上 CPU(因此称为主机卡模拟).

所有卡模拟都是关于 Type 4 NFC 卡(信用卡和类似卡)的模拟

Type 4 Nfc 卡有一个“应用程序标识符”编号或 AID,用于标识卡的格式。

通常情况下,安全元件首先处理已配置为处理的 AID,然后再将它们传递给主机 CPU。通常,AID 的路由顺序首先与安全元件无缝连接,然后是主机 CPU,但三星确实提供了更改此顺序的设置。

但是

NfcAdapter.isEnabled()

If this method returns false, the NFC hardware is guaranteed not to generate or respond to any NFC communication over its NFC radio.

我的理解是影响这个状态的UI设置基本上是NFC芯片的硬件电源开关,如果这个returns false芯片关闭并且不会'不做任何 NFC(安全仿真、主机仿真或 reading/writing)

所以我会在启动您的 HCE 服务之前检查 NfcAdapter.isEnabled()