Android поддерживает эмуляцию карт вне хоста, что означает эмуляцию карт NFC с безопасным элементом. Дополнительные сведения см. в разделе Обзор эмуляции карты на основе хоста .
В определенных случаях использования, таких как использование FeliCa для транзита, эмуляция карты вне хоста разрешена, когда экран устройства заблокирован или выключен, или когда устройство выключено.
Secure NFC — это функция, представленная в Android 10, которая позволяет включать эмуляцию внешней карты NFC только тогда, когда экран устройства разблокирован. Реализация этой функции дает пользователям возможность включить Secure NFC для повышения безопасности.
Выполнение
Для реализации функции Secure NFC устройство должно иметь контроллер NFC, поддерживающий стандарт NCI 2.0, и использовать платформу NFC Android Open Source Project (AOSP). Добавьте оборудование ( ro.boot.hardware.sku
), которое поддерживает функцию Secure NFC, в XML-файл ресурсов NFC с атрибутом config_skuSupportsSecureNfc
.
API-интерфейсы платформы
Чтобы реализовать Secure NFC, реализуйте следующие API-интерфейсы платформы, найденные в проекте Android с открытым исходным кодом:
-
isSecureNfcSupported()
: проверяет, поддерживает ли устройство функцию Secure NFC. -
isSecureNfcEnabled()
: проверяет, включена ли функция Secure NFC. -
enableSecureNfc(boolean enable)
: Включает функцию Secure NFC.
Интерфейс настроек
В приложении «Настройки» добавьте тумблер, позволяющий пользователям включать и отключать функцию Secure NFC. Вы можете настроить настройку по умолчанию в приложении «Настройки», чтобы она была включена или отключена.
На рис. 1 показан пример тумблера для включения и отключения Secure NFC в приложении «Настройки» в разделе «Настройки» > «Подключенные устройства» > «Настройки подключения» > NFC > «Требовать разблокировку устройства для NFC» .
Рис. 1. Пример тумблера для включения и отключения Secure NFC.
Когда Secure NFC включен и пользователь помещает устройство в устройство чтения NFC, Android отображает уведомление «Разблокировать для использования NFC» на экране блокировки, как показано на рисунке 2.
Рис. 2. Разблокируйте, чтобы использовать уведомление NFC на экране блокировки.
Валидация
Чтобы проверить вашу реализацию, включите функцию Secure NFC и убедитесь, что эмуляция карты NFC отключена, когда экран устройства выключен или заблокирован, а также когда устройство выключено.