Android поддерживает эмуляцию карты вне хоста, что означает эмуляцию карты NFC с элементом безопасности. Дополнительные сведения см. в разделе Обзор эмуляции карты на основе хоста .
В некоторых случаях использования, таких как использование FeliCa для транспорта, эмуляция карты вне хоста разрешена, когда экран устройства заблокирован или выключен, или когда устройство выключено.
Безопасный 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 отключена, когда экран устройства выключен или заблокирован, а также когда устройство выключено.