Android HCE开发( 二 )


使用安全元件进行卡模拟

Android HCE开发

文章插图
不涉及安全元件的 NFC 卡模拟
的 HCE 协议栈
具体而言,4.4 支持基于 NFC-Forum ISO-DEP 规范(基于 ISO/IEC 14443-4)的模拟卡,并处理应用协议数据单元 (APDU)(如 ISO/IEC 7816-4 规范中所定义) 。要求仅使用 Nfc-A (ISO/IEC 14443-3 Type A) 技术模拟 ISO-DEP 。也可以支持 Nfc-B (ISO/IEC 14443-4 Type B) 技术 。图 显示了所有这些规范的分层 。
HCE 服务
中的 HCE 架构基于 组件(称为“HCE 服务”) 。服务的一项关键优势是可以在后台运行,而不显示任何界面 。这非常适合很多 HCE 应用(例如会员卡或公交卡),用户不需要启动应用即可使用 。设备触碰到 NFC 读取器时,系统会启动正确的服务(如果服务尚未运行),并在后台执行交易 。当然,如果合适,您也尽可从自己的服务启动额外的界面(例如用户通知)
服务选择
当用户手拿设备触碰 NFC 读取器时,系统需要知道 NFC 读取器实际想与哪项 HCE 服务通信 。这时 ISO/IEC 7816-4 规范就派上用场了:它定义了一种以应用 ID (AID) 为核心的应用选择方式 。一个 AID 最多可包含 16 个字节 。如果您要模拟适用于现有 NFC 读取器基础设施的卡,这些读取器使用的 AID 通常为人熟知且已公开注册(例如,支付网络 Visa 和等的 AID) 。
如果您想为自己的应用部署新的读取器基础设施,则需要注册自己的 AID 。AID 的注册流程在 ISO/IEC 7816-5 规范中得到了定义 。如果您要部署版 HCE 应用,建议您根据 7816-5 规范注册一个 AID,以避免与其他应用发生冲突 。
同时运行安全元件和主机卡模拟的设备