我制作了一个可以与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