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 顯示了一個撥動開關示例,用於在Settings > Connected devices > Connection preferences > NFC > Require device unlock for NFC 中的 Settings 應用程序中啟用和禁用 Secure NFC 。
圖 1.啟用和禁用安全 NFC 的示例切換開關
當啟用安全 NFC 並且用戶將設備放在 NFC 閱讀器上時,Android 會在鎖定屏幕上顯示解鎖以使用 NFC通知,如圖 2 所示。
圖 2.解鎖以在鎖定屏幕上使用 NFC 通知
驗證
要驗證您的實施,請啟用安全 NFC 功能並驗證在設備屏幕關閉或鎖定以及設備關閉時禁用 NFC 卡仿真。