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