Я разрабатываю симулятор платежного терминала, который действует как автономный POS-терминал. Он нормально работает с чиповыми бесконтактными картами (может связываться с ними по соответствующему протоколу), инициировать транзакцию, считывать с них данные и т.д.
Я также хотел обрабатывать транзакции через Google Pay (POS-терминалы распознают Google Pay как обычную бесконтактную карту — тот же протокол). Но когда у меня есть одно устройство Android с запущенным приложением для POS-терминала и другое устройство Android с Google Pay, когда я касаюсь обоих устройств вместе, мое приложение POS сворачивается и отображается «Нажмите, чтобы отправить луч». Я ожидал, что вместо этого в приложении POS-терминала будет вызываться метод onNewIntent
.
Как справиться с этим? Ожидаемое поведение заключается в том, что мое приложение (POS-терминал) не свернуто, а на другом телефоне срабатывает приложение Google Pay.
Должен ли я отправить что-то в начале, чтобы Android с Google Pay мог распознать, что это платежная транзакция? Или, может быть, какой-то конкретный фильтр намерений для обработки этого на Android-устройстве POS-терминала?
Я также заметил, что в одной из трех-четырех попыток я, похоже, получаю ожидаемое поведение - в моем приложении вызывается onNewIntent
. Это похоже на некоторую гонку между моим приложением и поведением Android Beam по умолчанию.