我正在寻找一种方法来抑制一项活动的Android Pay应用。 iOS有requestAutomaticPassPresentationSuppressionWithResponseHandler方法,它允许这个 - 在应用程序处于前台时抑制Apple Pay - 我试图在Android上实现这一点。
我已实施foreground dispatch。这适用于大多数NFC标签 - 在活动中检测到标签,然后被忽略。但是,当检测到非接触式支付计算机时,Android Pay应用程序会被触发,而我的活动中永远不会进行新的内部呼叫。
除了实施应用程序以执行card emulation并忽略这些请求(由于某些原因而不是真正的选项)之外,还有什么我可以做的来抑制Android Pay吗? (以及其他类似的支付应用程序,主要关注Android Pay最受欢迎)
答案 0 :(得分:1)
在Android 4.4及更高版本中,您可以使用reader-mode 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()
收到的标记句柄。