Android поддерживает эмуляцию карт NFC с безопасным элементом для эмуляции карт за пределами хоста. (Дополнительную информацию см. в разделе Обзор эмуляции карты на основе хоста .) Однако на платформе Android предпочтительный платежный сервис, указанный в настройке Tap & Pay, не всегда синхронизируется с приложением в защищенном элементе. Это означает, что возможно, что вместо предпочтительной платежной службы в элементе безопасности используется непредпочтительная платежная служба.
В Android 11 функция синхронизации платежей за пределами хоста предоставляет механизм, который позволяет синхронизировать конфигурацию платежей в Tap & pay, конфигурацию маршрутизации в бесконтактном интерфейсе (CLF) и состояние, выбранное приложением, в защищенном элементе.
На следующей диаграмме показана архитектура проекта функции синхронизации платежей за пределами хоста.
![Архитектура проектирования синхронизации платежей за пределами хоста](https://source.android.com/static/docs/core/connect/images/nfc-offhost-payment-sync.png?authuser=5&hl=ru)
Выполнение
Для реализации функции синхронизации платежей за пределами хоста устройство должно иметь контроллер NFC, поддерживающий стандарт NCI 2.0, и использовать платформы Android Open Source Project NFC и Open Mobile Application Programming Interface (OMAPI).
API-интерфейсы платформы
Чтобы реализовать синхронизацию платежей за пределами хоста, используйте следующие API-интерфейсы платформы, найденные в проекте Android с открытым исходным кодом:
-
getAidsForPreferredPaymentService()
: извлекает зарегистрированные идентификаторы AID для предпочтительной платежной службы. -
getRouteDestinationForPreferredPaymentService()
: извлекает пункт назначения маршрута для предпочтительной платежной службы. -
getDescriptionForPreferredPaymentService()
: возвращает видимое пользователю описание предпочтительной платежной услуги. -
android.permission.NFC_PREFERRED_PAYMENT_INFO
(разрешение): позволяет приложениям получать информацию о предпочтительных платежных услугах NFC. -
android.nfc.action.PREFERRED_PAYMENT_CHANGED
(широковещательное действие): намерение уведомить об изменении предпочтительной платежной службы.
Проверка
Чтобы проверить реализацию функции синхронизации платежей за пределами хоста, установите приложения защищенных элементов с соответствующими защищенными элементами, а затем проверьте соответствующие ответы от устройства чтения NFC в различных условиях.