我正在编写一个通过API与支付网关接口的应用程序。启动付款交易后,网关会推送/强制在电话上打开USSD对话框。我的目标是在单击取消或发送按钮时向用户显示反馈。
我正在寻找
List<AccessibilityNodeInfo> list = source.findAccessibilityNodeInfosByText("Send");
for (AccessibilityNodeInfo node : list) {
node.setOnClickListener(...);
}
答案 0 :(得分:0)
无法直接获取点击事件。使用无障碍服务是正确的方法,但是您必须侦听对话框窗口事件并阅读它们的内容。您可以获取单击按钮的事件,但是我不确定是否值得,因为您将无法确定会话中输入了什么。
我的公司Hover开发了一个Android SDK,该SDK使用可访问性服务来运行多步USSD会话,并使其似乎在您的应用程序中发生。您可以为USSD服务创建配置,触发会话以从您的应用运行,并传入所需的任何运行时变量。用户永远不会看到USSD会话,并且在返回响应时会通知您的应用,您可以根据需要对其进行解析。它适用于Android 4.3及更高版本。
SDK是免费集成和使用的,直到您大规模使用为止。请参阅我们的docs开始使用。
(披露:我是Hover的CTO)