我正在寻找一种方法来禁止 Android Pay 应用进行一项 Activity 。 iOS 有 requestAutomaticPassPresentationSuppressionWithResponseHandler方法,它允许这个 - 当应用程序在前台时抑制 Apple Pay - 我试图在 Android 上实现这个。
我已经实现了 foreground dispatch .这适用于大多数 NFC 标签 - 标签在 Activity 中被检测到,然后被忽略。但是,当检测到非接触式支付机器时,Android Pay 应用程序反而会被触发,我的 Activity 中从未收到 onNewIntent 调用。
除了实现该应用程序之外还要做 card emulation并忽略这些请求(出于某些原因这并不是一个真正的选择),我还能做些什么来抑制 Android Pay 吗? (以及其他以 Android Pay 为重点的类似支付应用最为流行)
最佳答案
在 Android 4.4 及更高版本上,您可以使用读取器模式 API 将设备显式切换到特定标签技术的读取器/写入器模式。这将禁用其他 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()
接收到的标签句柄。
关于android - 可以在应用内禁用 Android Pay 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47696814/