Android 支持脱离主机的卡模拟,也就是具有安全元件的 NFC 卡模拟。如需了解详情,请参阅基于主机的卡模拟概览。
在某些使用情形(例如使用 FeliCa 进行传输)中,当设备的屏幕处于锁定或关闭状态或者设备已关闭时,允许进行脱离主机的卡模拟。
安全 NFC 是 Android 10 中引入的一项功能,允许仅在设备屏幕处于解锁状态时启用脱离主机的 NFC 卡模拟。通过实现此功能,用户可以选择启用安全 NFC,以提高安全性。
实现
如需实现安全 NFC 功能,设备必须具有支持 NCI 2.0 标准的 NFC 控制器,并且必须使用 Android 开源项目 (AOSP) NFC 框架。您可以使用 config_skuSupportsSecureNfc
属性在 NFC 资源 XML 文件中添加支持安全 NFC 功能的硬件 (ro.boot.hardware.sku
)。
框架 API
如需实现安全 NFC,请实现 Android 开源项目中提供的以下框架 API:
isSecureNfcSupported()
:检查设备是否支持安全 NFC 功能。isSecureNfcEnabled()
:检查是否启用了安全 NFC 功能。enableSecureNfc(boolean enable)
:启用安全 NFC 功能。
设置界面
在“设置”应用中,添加切换开关以允许用户启用和停用安全 NFC 功能。您可以将“设置”应用中的默认设置自定义为启用或停用。
图 1 的示例显示的是在“设置”应用中启用和停用安全 NFC 功能(步骤为依次点按设置 > 已连接的设备 > 连接偏好设置 > NFC > 必须解锁设备才能使用 NFC)的切换开关。
图 1. 启用和停用安全 NFC 功能的切换开关示例
如果启用了安全 NFC 功能,则在用户将设备放在 NFC 读取器上时,Android 会在锁定屏幕上显示需要解锁才能使用 NFC 通知,如图 2 所示。
图 2. 锁定屏幕上显示的“需要解锁才能使用 NFC”通知
验证
如需验证您的实现,请启用安全 NFC 功能,并验证在设备屏幕处于关闭或锁定状态以及设备已关闭时是否停用了 NFC 卡模拟。