三星设备 nfc 模式和主机卡模拟
Samsung device nfc mode and host card emulation
感谢阅读这个问题。祝你有个美好的一天。
我目前正在开发一个 NFC 主机应用程序,它可以生成一个包含我要传输的数据的 NFC。但我对三星设备中 NFC 模式的详细信息感到困惑。
如您所知,三星设备在NFC方面有两种模式,标准模式和卡片模式。我以为标准模式提供了基本的NFC功能,比如生成NFC和读取NFC,而卡模式用于Samsung pay。但是有些帖子说卡片模式实际上是卡片模拟模式。我想知道这个“卡”模拟模式是否与主机“卡”模拟有任何关系,或者它只是三星支付“卡”。
长话短说,
- 对于三星设备中的 HCE,我必须使用哪种 NFC 模式?
- 如果我必须为 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()
。
感谢阅读这个问题。祝你有个美好的一天。
我目前正在开发一个 NFC 主机应用程序,它可以生成一个包含我要传输的数据的 NFC。但我对三星设备中 NFC 模式的详细信息感到困惑。
如您所知,三星设备在NFC方面有两种模式,标准模式和卡片模式。我以为标准模式提供了基本的NFC功能,比如生成NFC和读取NFC,而卡模式用于Samsung pay。但是有些帖子说卡片模式实际上是卡片模拟模式。我想知道这个“卡”模拟模式是否与主机“卡”模拟有任何关系,或者它只是三星支付“卡”。
长话短说,
- 对于三星设备中的 HCE,我必须使用哪种 NFC 模式?
- 如果我必须为 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()
。