安全 NFC

Android 支持离线主机卡模拟,这意味着使用安全元件进行 NFC 卡模拟。如需了解详情,请参阅基于主机的卡模拟概览

在某些用例中,例如使用 FeliCa 进行交通运输,当设备的屏幕锁定或关闭,或者设备关闭时,允许进行离线主机卡模拟。

安全 NFC 是 Android 10 中引入的一项功能,允许仅在设备屏幕解锁时启用离线主机 NFC 卡模拟。实现此功能让用户可以选择启用安全 NFC 以提高安全性。

实现

要实现安全 NFC 功能,设备必须具有支持 NCI 2.0 标准的 NFC 控制器,并且必须使用 Android 开源项目 (AOSP) NFC 框架。将支持安全 NFC 功能的硬件 (ro.boot.hardware.sku) 添加到 NFC 资源 XML 文件,并使用 config_skuSupportsSecureNfc 属性。

框架 API

要实现安全 NFC,请实现 Android 开源项目中提供的以下框架 API

设置界面

在“设置”应用中,添加一个切换开关,让用户可以启用和停用安全 NFC 功能。您可以自定义“设置”应用中的默认设置,使其为启用或停用状态。

图 1 显示了在“设置”应用中启用和停用安全 NFC 的切换开关示例,位于设置 > 已连接的设备 > 连接偏好设置 > NFC > NFC 需要设备解锁

Secure NFC UI flow

图 1. 启用和停用安全 NFC 的切换开关示例

当启用安全 NFC 且用户将设备放在 NFC 阅读器上时,Android 会在锁定屏幕上显示解锁以使用 NFC 通知,如图 2 所示。

Secure NFC notification

图 2. 锁定屏幕上显示的“解锁以使用 NFC”通知

验证

要验证您的实现,请启用安全 NFC 功能,并确认当设备的屏幕关闭或锁定时以及设备关闭时,NFC 卡模拟功能已停用。