辅助功能事件仅在启用辅助功能服务后发生一次

时间:2019-04-08 06:07:56

标签: android accessibility accessibilityservice android-accessibility

我刚刚开始对使用无障碍服务的应用进行编码。我将详细解释我的问题。

下面是我的onServiceConnected类的MyAccessibilityService方法

protected void onServiceConnected() {
    super.onServiceConnected();
    AccessibilityServiceInfo info = getServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED | AccessibilityEvent.WINDOWS_CHANGE_ADDED;

    info.packageNames = new String[]
            {THIRD_PARTY_APP_PACKAGE};

    info.notificationTimeout = 100;
    this.setServiceInfo(info);
}

该应用正在以onAccessibilityEvent()方法检测事件

public void onAccessibilityEvent(AccessibilityEvent event) {
    AccessibilityNodeInfo source = event.getSource();
    if (source == null) {
        return;
    }

    Toast.makeText(this, "Event Occured", Toast.LENGTH_SHORT).show();
}

现在,当我打开第三方应用程序时,我得到的是Toast“事件已发生”。现在,我关闭了该应用程序,再次打开该应用程序时,该方法未调用,并且没有得到任何Toast。为了使其再次运行,我必须在手机的“设置”中禁用应用程序的辅助功能,然后再次启用它。

我知道我遗漏了一些东西,我唯一的问题是,每次打开第三方应用程序时,要检测该事件,代码的附加部分应该是什么?我需要进行哪些修改?

1 个答案:

答案 0 :(得分:0)

您是否尝试过摆脱通知超时?您可能不需要它,它也不是经过最佳测试的API。

相关问题