如何与USSD AlertDialog上的多个会话进行交互?

时间:2019-02-07 13:22:05

标签: android accessibilityservice

我制作了一个可以与USSD对话框进行交互的应用程序,但是问题是,我希望该应用程序能够与一系列用于不同服务的USSD对话框进行交互。

它必须收集来自不同USSD服务的响应,直到会话结束。我希望可以理解。

以下是用于与任何具有唯一响应的USSD服务进行交互的代码。

if(event.getClassName().equals("android.app.AlertDialog")){
   //         performGlobalAction(GLOBAL_ACTION_BACK);
            Log.d(TAG, text);
            Intent intent = new Intent("com.times.ussd.action.REFRESH");
            intent.putExtra("message ", text);
            /*AlertDialog.Builder builder  = new AlertDialog.Builder(this);
            builder.setMessage("1");*/
            AccessibilityNodeInfo nodeInfo = event.getSource();


            if (nodeInfo!= null) {
                AccessibilityNodeInfo nodeInput = nodeInfo.findFocus(AccessibilityNodeInfo.FOCUS_INPUT);
                Bundle bundle = new Bundle();

                if (nodeInput != null) {
                    bundle.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,"1");
                    nodeInput.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, bundle);
                }
                //nodeInput.refresh();

                List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByText("Send");
                for(AccessibilityNodeInfo node : list)
                    node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
            }
            else
                Log.d(TAG, "Null Thing");
        }

它们属于服务类,扩展了AccessibilityService

0 个答案:

没有答案