0

当我们习惯于 APK & TAG 每部手机时,就可以知道其他人的 NFC TAG ID。例如,电话 A 和 B 尝试标记。然后电话 A 可以知道电话 B 的 NFC TAG ID(4 字节 - HEX)。但我想知道如何知道我手机上的 NFC TAG ID。没用过其他手机。如果您知道任何其他信息,请给我您的建议。

4

1 回答 1

8

手机不一定有固定的防碰撞标识符(“NFC Tag ID”,正如你所说的那样)。例如,它可以有一个防冲突标识符,在每次激活时随机分配(例如,打开外部 HF 场,打开电话等)它还可以有一个甚至多个不可变的防冲突标识符(例如来自一个或多个安全元件)。

这取决于几个因素:

  • 该手机中的 NFC 控制器是否连接了安全元件?
  • NFC 控制器是否配置为向外界公开附加的安全元件?
  • 手机是处于卡模拟模式还是被动点对点模式(或两种模式的组合防冲突阶段)?
  • NFC 控制器是否直接将一个卡模拟实体(例如安全元件或主机控制器)直接暴露给外部世界,还是使用 NFCEE 路由组合一个或多个模拟实体?
  • 等等。

当您提到“APK”时,我猜您指的是 Android 平台(尽管您拒绝回答我的问题)。在较新的 Android 设备(尤其是那些支持基于主机的卡片模拟的设备)和根本不使用卡片模拟的 Android 设备上,外界可见的防冲突标识符 (UID) 通常不是静态的,并且在每个设备上都会发生变化。激活或每次重新启动设备时(似乎存在一些例外)。特别是,对于 NFC 点对点模式,该标准要求使用每会话随机标识符。因此,UID 在这些典型情况下没有多大用处。

一般来说,Android提供任何 API 来从设备中检索当前使用的防冲突标识符。通常,随机标识符是在 NFC 控制器中创建的,因此 Android 系统甚至不会知道它。

对于安全元件芯片的不可变 ID,vanilla Android 不包含访问安全元件的公共 API,因此同样适用于此类安全元件的任何标识信息。

于 2014-08-29T15:36:06.613 回答