有没有办法将 onclick 侦听器设置为 USSD 对话框按钮?

Is there a way to set onclick listener to USSD dialog buttons?

我正在编写一个通过 API 与支付网关交互的应用程序。启动支付交易后,网关 push/forces 将在 phone 上打开一个 USSD 对话框。我的目标是在单击 CancelSend 按钮时向用户显示反馈。

我正在寻找类似

的内容
List<AccessibilityNodeInfo> list = source.findAccessibilityNodeInfosByText("Send");

for (AccessibilityNodeInfo node : list) {
    node.setOnClickListener(...);
}

没有办法直接获取点击事件。使用无障碍服务是正确的方法,但您必须监听对话 window 事件并阅读他们说的内容。您可以获得单击按钮的事件,但我不确定这是否值得,因为您无法分辨输入到会话中的内容。

我的公司 Hover 开发了一个 Android SDK,它使用无障碍服务 运行 多步 USSD 会话,并让它看起来像是在您的应用程序中发生的。您为 USSD 服务创建配置,从您的应用程序触发到 运行 的会话,并传入您需要的任何 运行 时间变量。用户永远不会看到 USSD 会话,当返回响应时,您的应用程序会收到通知,您可以根据需要对其进行解析。它适用于 Android 4.3 及更高版本。

SDK 可以免费集成和使用,直到您大规模使用为止。请参阅我们的 docs 以开始使用。

(披露:我是哈弗的CTO)