gpt4 book ai didi

android - Android 设备之间的 NFC 交互触发 Android Beam 而不是 HCE

转载 作者:行者123 更新时间:2023-11-29 23:23:41 24 4
gpt4 key购买 nike

我正在开发充当独立 POS 终端的支付终端模拟器。它适用于芯片非接触式卡(它可以通过适当的协议(protocol)与它们通信)、发起交易、从它们读取数据等。

我还想处理由 Google Pay 完成的交易(POS 终端将 Google Pay 识别为普通的非接触式卡 - 相同的协议(protocol))。但是,当我有一台运行 POS 终端应用程序的 Android 设备和另一台运行 Google Pay 的 Android 设备时,当我同时触摸两个设备时,我的 POS 应用程序会最小化并显示“触摸发送光束”。我原以为 onNewIntent 方法会在 POS 终端应用程序中调用。

如何处理?预期的行为是我的应用程序(POS 终端)没有最小化,而在另一部手机上触发了 Google Pay 应用程序。

我是否应该在开始时发送一些东西,以便带有 Google Pay 的 Android 可以识别这是一个支付交易?或者也许一些特定的 Intent 过滤器可以在 POS 终端 Android 设备上处理这个问题?

我还观察到,在三到四次尝试中的一次中,我似乎得到了预期的行为 - onNewIntent 在我的应用程序中被调用。这看起来像是我的应用程序和默认的 Android Beam 行为之间的某种竞争条件。

最佳答案

您不能使用常规标记分派(dispatch)机制( Intent 过滤器或前台分派(dispatch)系统)与另一台在卡片模拟 (HCE) 模式下运行的 Android 设备进行交互。问题是这两个 Android 设备通常会自动发现它们的点对点模式功能。因此,它们以 P2P 模式连接并触发 Android Beam(在 P2P 之上的 LLCP 之上的 SNEP)。请注意,即使您在两台设备上禁用 Android Beam,它们仍会选择 P2P 模式。

要克服这个问题,您需要使用 reader mode API .这允许您在 Activity 在前台时禁用 P2P 模式并有选择地启用读取器/写入器模式功能(例如不同的技术)。

关于android - Android 设备之间的 NFC 交互触发 Android Beam 而不是 HCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53848928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com