Android 可以在应用内禁用支付吗?

Can Android Pay be disabled in-app?

我正在寻找一种方法来抑制 Android 一个 activity 的付费应用程序。 iOS 有 requestAutomaticPassPresentationSuppressionWithResponseHandler 方法,它允许这个 - 当应用程序在前台时抑制 Apple Pay - 我试图在 Android.

上实现这个

我已经实现了foreground dispatch。这适用于大多数 NFC 标签 - 标签在 activity 中被检测到,然后被忽略。但是,当检测到非接触式付款机时,Android 支付应用程序反而会被触发,而我在 activity.

中从未收到 onNewIntent 调用

除了实施应用程序来执行 card emulation 并忽略这些请求(出于某些原因这不是一个真正的选择)之外,我还能做些什么来抑制 Android 付款吗? (以及其他专注于 Android 支付最受欢迎的类似支付应用程序)

在 Android 4.4 及更高版本上,您可以使用 reader 模式 API 将设备显式切换到 reader/writer 模式以获得特定标签技术。这将禁用其他 NFC 模式(点对点模式 ("Android Beam") 和卡模拟模式)。

nfcAdapter.enableReaderMode(this, new NfcAdapter.ReaderCallback() {
    public void onTagDiscovered(Tag tag) { }
}, NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK, null);

由于您还想忽略已发现的标签,因此您可以简单地删除(忽略)通过 onTagDiscovered().

收到的标签句柄