Android поддерживает эмуляцию NFC-карт с помощью защищённого элемента для эмуляции карт вне хоста. (Подробнее см. в разделе Обзор эмуляции карт на хосте .) Однако на платформе Android предпочитаемый платёжный сервис, указанный в настройке «Оплата касанием», не всегда синхронизируется с приложением в защищённом элементе. Это означает, что вместо предпочитаемого платёжного сервиса в защищённом элементе может использоваться непредпочитаемый платёжный сервис.
В Android 11 функция синхронизации платежей вне хоста предоставляет механизм, позволяющий синхронизировать конфигурацию платежей в Tap & pay, конфигурацию маршрутизации на бесконтактном интерфейсе (CLF) и выбранное приложением состояние в защищенном элементе.
На следующей диаграмме показана архитектура проекта функции синхронизации платежей вне хоста.

Выполнение
Для реализации функции синхронизации платежей вне хоста устройство должно иметь контроллер NFC, поддерживающий стандарт NCI 2.0, а также использовать фреймворки Android Open Source Project NFC и Open Mobile Application Programming Interface (OMAPI).
API-интерфейсы фреймворка
Для реализации синхронизации платежей вне хоста используйте следующие API-интерфейсы фреймворка, найденные в проекте Android Open Source Project:
-
getAidsForPreferredPaymentService()
: извлекает зарегистрированные AID для предпочитаемой платежной службы. -
getRouteDestinationForPreferredPaymentService()
: извлекает пункт назначения маршрута для предпочитаемой платежной службы. -
getDescriptionForPreferredPaymentService()
: возвращает видимое пользователю описание предпочитаемого платежного сервиса. -
android.permission.NFC_PREFERRED_PAYMENT_INFO
(разрешение): позволяет приложениям получать информацию о предпочитаемом платежном сервисе NFC. -
android.nfc.action.PREFERRED_PAYMENT_CHANGED
(широковещательное действие): намерение уведомить об изменении предпочитаемого платежного сервиса.
Проверка
Чтобы проверить реализацию функции синхронизации платежей вне хоста, установите приложения с защищенными элементами с соответствующими защищенными элементами, а затем проверьте наличие соответствующих ответов от считывателя NFC в различных условиях.