多个在辅助功能服务的帮助下绘制视图的应用程序无法同时工作
Several apps which draw view over other apps with help Accessibility service doesn't work at the same time
我在一台设备上的两个不同应用程序中有两个辅助功能服务。他们每个人都对其他应用程序有所了解。我遇到了以下问题:启用 2 个辅助功能服务时,只有一个绘制视图,另一个没有任何事件。
事件配置如下:
@Override
protected void onServiceConnected() {
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
info.feedbackType = AccessibilityEvent.TYPES_ALL_MASK;
info.notificationTimeout = TIMEOUT_IN_MS;
setServiceInfo(info);
super.onServiceConnected();
}
我可以在 Lollipop 之前的 Android 版本和 Android M 上重现它。在 Android O 和 N 上,所有服务都可以正常工作。
有人可以向我解释一下它是如何发生的吗,也许从 Android N 开始有一些改进?
如果有办法让它们同时工作,能否请您提供一个实现方法?
您实际上不能 运行 一次 Android N 两个辅助功能服务。一个总是会崩溃,并创建一个 stale/daemon 服务 运行它在后台,阻止您重新启动崩溃的服务。这与服务的功能和作用无关。事实上,即使 运行 使用 Android Instrumentation 测试的虚假 UIAutomation 服务也会导致 运行ning 服务崩溃。无法绕过此限制。
我在一台设备上的两个不同应用程序中有两个辅助功能服务。他们每个人都对其他应用程序有所了解。我遇到了以下问题:启用 2 个辅助功能服务时,只有一个绘制视图,另一个没有任何事件。
事件配置如下:
@Override
protected void onServiceConnected() {
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
info.feedbackType = AccessibilityEvent.TYPES_ALL_MASK;
info.notificationTimeout = TIMEOUT_IN_MS;
setServiceInfo(info);
super.onServiceConnected();
}
我可以在 Lollipop 之前的 Android 版本和 Android M 上重现它。在 Android O 和 N 上,所有服务都可以正常工作。
有人可以向我解释一下它是如何发生的吗,也许从 Android N 开始有一些改进? 如果有办法让它们同时工作,能否请您提供一个实现方法?
您实际上不能 运行 一次 Android N 两个辅助功能服务。一个总是会崩溃,并创建一个 stale/daemon 服务 运行它在后台,阻止您重新启动崩溃的服务。这与服务的功能和作用无关。事实上,即使 运行 使用 Android Instrumentation 测试的虚假 UIAutomation 服务也会导致 运行ning 服务崩溃。无法绕过此限制。