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 фреймворка
Для реализации защищенного NFC необходимо использовать следующие API-интерфейсы фреймворка, доступные в проекте Android Open Source Project:
-
isSecureNfcSupported(): Проверяет, поддерживает ли устройство функцию Secure NFC. -
isSecureNfcEnabled(): Проверяет, включена ли функция Secure NFC. -
enableSecureNfc(boolean enable): Включает функцию безопасного NFC.
Интерфейс настроек
В приложении «Настройки» добавьте переключатель, позволяющий пользователям включать и отключать функцию безопасного NFC. Вы можете настроить значение по умолчанию в приложении «Настройки» — либо включено, либо выключено.
На рисунке 1 показан пример переключателя для включения и выключения функции Secure NFC в приложении «Настройки» в разделе «Настройки» > «Подключенные устройства» > «Параметры подключения» > «NFC» > «Требовать разблокировку устройства для NFC» .

Рисунок 1. Пример переключателя для включения и выключения функции Secure NFC.
Когда функция Secure NFC включена и пользователь прикладывает устройство к NFC-считывателю, Android отображает на экране блокировки уведомление «Разблокируйте устройство для использования NFC», как показано на рисунке 2.

Рисунок 2. Разблокировка для использования NFC-уведомлений на экране блокировки.
Валидация
Для проверки правильности вашей реализации включите функцию Secure NFC и убедитесь, что эмуляция NFC-карты отключается, когда экран устройства выключен или заблокирован, а также когда устройство выключено.