简单回答:因为谷歌决定只支持ISO/IEC 7816-4而不是ISO-DEP (ISO/IEC 14443-4)。
关于的猜测--为什么会这样做:
- 首先,ISO/IEC 7816-4是基于ISO-DEP的高级协议层,可以用来通过NCI (NFC Controller Interface)将通信路由到应用程序处理器。路由较低的协议层是可能的(读:“NCI协议支持这一点”),尽管NFC控制器甚至不需要支持底层通信的路由。
- ISO/IEC 7816-4通过ISO-DEP允许在每次申请的基础上进行路由选择.也就是说,读取器选择特定的应用程序,然后NFC控制器决定通信是传递给安全元素还是传递给应用处理器。应用程序处理器可以执行类似的路由机制,将通信路由到特定的应用程序(这就是Android现在所做的)。
- 使用较低的协议层(例如,ISO/IEC 14443-3),没有办法对每个应用程序进行路由。相反,该级别上的所有通信都将被路由到安全元素或应用程序处理器。如果路由到应用程序处理器,那么操作系统就无法在多个应用程序之间进行选择。相反,只有一个应用程序可以注册为这种类型的通信。然而,考虑到Android这样的平台上有大量的应用开发人员,只允许一个应用程序就会对开发造成相当大的阻碍。
- MIFARE经典是NXP的专有技术。我不期望他们授权MIFARE经典协议/tag平台的纯软件实现(在应用程序处理器/Android系统上)。
- MIFARE经典使用身份验证命令的非标准帧,因此可能很难在NCI帧RF接口上进行仿真(尽管我对该协议不太熟悉,无法确认是否存在阻止MF经典仿真的实际限制)。