支持前台应用不适用于 HCE 付款 Android

Favour foreground app not working for HCE payments Android

我的 HCE 付款遇到了一个奇怪的问题。我的手机中有两个支付应用程序。一个是我开发的,另一个是 Android 付费的。在 Tap&Pay 中,默认的是 "Android Pay",而我的应用程序是非默认的并且已启用 "Favour foreground app"。

现在我的问题是当我尝试付款时(点击设备到 POS),设备总是提示 "Android Pay" 而不是我的应用程序。

我遵循了 Android 文档中给出的所有指南。

Android HCE guide

我是否需要在我的代码中启用任何功能才能实现此目的?

为了利用 "Favor Foreground App" 首选项,您需要告诉 CardEmulation 您的应用已准备好拦截终端点击。默认情况下,您的应用不会拦截点击。

在我们的应用程序中,我在每个 Activity 的 onPause() 和 onResume() 中执行此操作(或者您可以扩展一个通用的 Activity 并只执行一次。

onResume()调用 public boolean setPreferredService (Activity activity, ComponentName service)

onPause(),调用 public boolean unsetPreferredService (Activity activity)