所以我知道,在 Android 中,可以将智能手机配置为模拟模式以模拟给定的 NFC 标签。我很好奇的是是否有一种方法可以在 NFC 握手期间通过某种唯一 ID 来识别 NFC 阅读器。
例如,假设我每天使用一些与 NFC 兼容的标签……比如说燃料奖励卡、我的工作安全徽章和我的主要品牌信用卡。是否可以根据手机检测到的阅读器自动模拟正确的标签,这样当我点击燃油泵时,我的燃料津贴标签会被模拟,当我在工作中点击传感器时,我的徽章会被模拟,当我点击时在模拟我的信用卡的任何零售店?
简短的回答:可能不是。读者没有唯一的 ID。它们发出轮询命令,这些命令是标准化和固定的。
然而,非接触式智能卡系统通常与 ISO 7816-4 兼容。它们支持一张卡上的多个应用程序。读者选择他们想要与之交互的应用程序的应用程序 ID。因此,如果您所有的卡都是与 ISO 7816-4 兼容的 ISO 14443-4 卡,那么(理论上)可以将它们组合成一张卡,例如在 NFC 手机的安全元件中。
另一个流行的非接触式系统是 MIFARE Classic。NFC 手机中的安全元件也很可能模拟 MIFARE Classic 卡。这些卡不符合 ISO 7816-4 标准,但仍然可以在一张卡上组合多个应用程序(使用所谓的 MIFARE 应用程序目录)。因此,如果您的卡是符合 ISO 7816-4 的卡和 MIFARE Classic 卡的集合,理论上可以将它们组合在安全元件中。但是,MIFARE 卡的内存有限,并且使用密钥进行读写访问,因此您无法读取其内容。因此,即使理论上可以组合多个应用程序,但在实践中可能仍然是不可能的。
很可能,您的一张或多张卡不符合 ISO 7816-4 标准且不符合 MIFARE Classic,例如 MIFARE Ultralight、DESFire 或 ICODE(仅举几例)。您可以使用TagInfo等 Android 应用程序检查内部的芯片。