AccessibilityService ~ AccessibilityNodeInfo при нажатии: продолжайте мигать - PullRequest
0 голосов
/ 14 ноября 2018

Я использовал точки x и y, чтобы щелкнуть указатель в Android. Это может сработать, когда он может автоматически щелкнуть по точке x и y, он будет мигать в точке щелчка события и показывает много времени нажатия указателя.

Нажмите ((AccessibilityNodeInfo.ACTION_CLICK)): продолжайте мигать

public void clickAtPosition(int x, int y, final AccessibilityNodeInfo node) {

    if (node == null) return;

    if (node.getChildCount() == 0) {
        Rect buttonRect = new Rect();
        node.getBoundsInScreen(buttonRect);
        if (buttonRect.contains(x, y)) {
            if(!node.performAction(AccessibilityNodeInfo.ACTION_CLICK)){
                count_click_time++;

            }else if(node.performAction(AccessibilityNodeInfo.ACTION_CLICK)){
                Toast.makeText(getApplicationContext(),"count_click_time 0 = "+count_click_time,Toast.LENGTH_SHORT).show();
                count_click_time = 0;
            }


        }else {

        Rect buttonRect = new Rect();
        node.getBoundsInScreen(buttonRect);
        if (buttonRect.contains(x, y)) {

            if(!node.performAction(AccessibilityNodeInfo.ACTION_CLICK)){
                Toast.makeText(getApplicationContext(),"count_click_time 1  not click = "+count_click_time,Toast.LENGTH_SHORT).show();
                count_click_time++;

            }else if(node.performAction(AccessibilityNodeInfo.ACTION_CLICK)){

                mHandler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(getApplicationContext(),"count_click_time 1 clicked = "+count_click_time,Toast.LENGTH_SHORT).show();
                    }
                },10000);
                count_click_time = 0;

            }


        }

        for (int i = 0; i < node.getChildCount(); i++) {

                clickAtPosition(x, y, node.getChild(i));

        }

    }
}
...