自 2025 年 3 月 27 日起,我們建議您使用 android-latest-release
而非 aosp-main
建構及貢獻 AOSP。詳情請參閱「Android 開放原始碼計畫變更」。
確保 NFC 安全
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Android 支援主機外卡片模擬功能,也就是使用安全元件的 NFC 卡片模擬功能。詳情請參閱「主機型卡片模擬總覽」。
在某些用途 (例如使用 FeliCa 進行大眾運輸) 中,如果裝置螢幕已鎖定或關閉,或是裝置已關閉,則允許離機卡模擬。
安全 NFC 是 Android 10 中推出的功能,可在裝置螢幕解鎖時啟用離機 NFC 卡模擬功能。實作這項功能後,使用者可以選擇啟用 Secure NFC,以提升安全性。
實作
如要實作安全 NFC 功能,裝置必須具備支援 NCI 2.0 標準的 NFC 控制器,並且必須使用 Android 開放原始碼計畫 (AOSP) NFC 架構。使用 config_skuSupportsSecureNfc
屬性,在 NFC 資源 XML 檔案中新增支援安全 NFC 功能的硬體 (ro.boot.hardware.sku
)。
Framework API
如要實作安全 NFC,請實作 Android 開放原始碼專案中的下列架構 API:
設定 UI
在「設定」應用程式中,新增切換鈕,讓使用者啟用及停用安全 NFC 功能。您可以在「設定」應用程式中自訂預設設定,將其設為啟用或停用。
圖 1 顯示了開關切換鈕的範例,可在「設定」應用程式中依序前往「設定」>「已連結的裝置」>「連線偏好設定」>「NFC」>「必須解鎖裝置才能使用 NFC」,啟用及停用安全 NFC。
圖 1. 用來啟用和停用安全 NFC 的切換按鈕範例
啟用安全 NFC 後,如果使用者將裝置放在 NFC 讀卡器上,Android 會在螢幕鎖定畫面上顯示「解鎖以使用 NFC」通知,如圖 2 所示。
圖 2. 螢幕鎖定畫面上的「解鎖後才能使用 NFC」通知
驗證
如要驗證實作方式,請啟用安全 NFC 功能,並確認在裝置螢幕關閉或鎖定,以及裝置關閉時,NFC 卡片模擬功能會停用。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-07-27 (世界標準時間)。"],[],[],null,["# Secure NFC\n\nAndroid supports off-host card emulation, which means\nNFC card emulation with a secure element. For more information, see\n[Host-based card emulation overview](https://developer.android.com/guide/topics/connectivity/nfc/hce).\n\nIn certain use cases such as using\n[FeliCa](https://en.wikipedia.org/wiki/FeliCa)\nfor transit, off-host card\nemulation is permitted when a device's screen is locked or turned off, or\nwhen a device is turned off.\n\nSecure NFC is a feature introduced in Android 10\nthat allows off-host NFC card\nemulation to be enabled only when the device's screen is unlocked. Implementing\nthis feature gives users the option to enable Secure NFC for\nimproved security.\n\nImplementation\n--------------\n\nTo implement the Secure NFC feature, the device must have an NFC controller that\nsupports the NCI 2.0 standard and must use the Android Open Source Project\n(AOSP) NFC framework. Add the hardware (`ro.boot.hardware.sku`) that supports\nthe Secure NFC feature in the NFC\n[resource XML file](https://android.googlesource.com/platform/packages/apps/Nfc/+/refs/heads/android16-release/res/values/config.xml)\nwith the `config_skuSupportsSecureNfc` attribute.\n\n### Framework APIs\n\nTo implement Secure NFC, implement the following framework APIs found in the\nAndroid Open Source Project:\n\n- [`isSecureNfcSupported()`](https://developer.android.com/reference/android/nfc/NfcAdapter#isSecureNfcSupported()): Checks if the device supports the Secure NFC feature.\n- [`isSecureNfcEnabled()`](https://developer.android.com/reference/android/nfc/NfcAdapter#isSecureNfcEnabled()): Checks if the Secure NFC feature is enabled.\n- [`enableSecureNfc(boolean enable)`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/java/android/nfc/NfcAdapter.java#1722): Enables the Secure NFC feature.\n\n### Settings UI\n\nIn the Settings application, add a toggle switch to allow users to enable and\ndisable the Secure NFC feature. You can customize the default setting in the\nSettings application to be either enabled or disabled.\n\nFigure 1 shows an example of a toggle switch to enable and disable Secure NFC\nin the Settings app in **Settings \\\u003e Connected devices \\\u003e\nConnection preferences \\\u003e NFC \\\u003e Require device unlock for NFC**.\n\n**Figure 1.** Example toggle switch to enable and disable Secure NFC\n\nWhen Secure NFC is enabled and a user places the device on an NFC reader,\nAndroid displays the **Unlock to use NFC** notification on the lock screen\nas shown in Figure 2.\n\n**Figure 2.** Unlock to use NFC notification on the lock screen\n\nValidation\n----------\n\nTo validate your implementation, enable the Secure NFC feature and verify that\nNFC card emulation is disabled when the device's screen is off or locked, and\nwhen the device is turned off."]]