Как нажать на кнопку с помощью AccessibilityService - PullRequest
0 голосов
/ 29 февраля 2020

Когда я переключаюсь от одного действия к другому в моем приложении, я получаю AccessibilityEvent, я вызываю метод getSource(), но когда View приходит к моему сервису, он запечатан, и я не могу инициировать нажатие кнопки на этом экране, так как все объекты этого вида запечатаны, но как мне затем инициировать нажатие кнопки в AccessibilityService?

Я пытался сделать это так

  @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        if(event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED){
            for(AccessibilityNodeInfo cancelButtons : getRootInActiveWindow().findAccessibilityNodeInfosByText("Cancel")){
                cancelButtons.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                break;
            }
        }
    }

Но я ловлю исключение java.lang.IllegalStateException Cannot perform this action on a not sealed instance.

Как исправить мой код?

...