Как взаимодействовать с несколькими сессиями на USSD AlertDialog? - PullRequest
0 голосов
/ 07 февраля 2019

Я создал приложение, которое может взаимодействовать с 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

...