Skip to content Skip to sidebar Skip to footer

Android - Interacting With Ussd Dialog Programmatically

Is there a way for an Android app to interact with the USSD dialog programmatically? The app runs on rooted phone and will not be published to google store (only for internal usage

Solution 1:

In the onAccessibilityEvent, you will need to first capture the input field, then fill it with your text, then click the "Send" (as explained by @lewil ngah)

AccessibilityNodeInfosource= event.getSource();
if (source != null) {
    //capture the EditText simply by using FOCUS_INPUT (since the EditText has the focus), you can probably find it with the viewId input_fieldAccessibilityNodeInfoinputNode= source.findFocus(AccessibilityNodeInfo.FOCUS_INPUT);
    if (inputNode != null) {//prepare you text then fill it using ACTION_SET_TEXTBundlearguments=newBundle();
        arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,"text to enter");
        inputNode.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments);
    }
    //"Click" the Send button
    List<AccessibilityNodeInfo> list = source.findAccessibilityNodeInfosByText("Send");
    for (AccessibilityNodeInfo node : list) {
        node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
    }
}

Solution 2:

Tank Prajest tau. For me is working fine.

in onAccessibilityEvent function, of AccessibilityService implementation

AccessibilityNodeInfo nodeInfo = event.getSource();
    List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByText("Send");
    for (AccessibilityNodeInfo node : list) {
        node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
    }

Solution 3:

Using Accessibility service we can read the USSD responce and we can able to interact with ussd dialog box.That we can able to pass the value to USSD dialog box. For me is working fine.

Post a Comment for "Android - Interacting With Ussd Dialog Programmatically"