多个在辅助功能服务的帮助下绘制视图的应用程序无法同时工作

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 服务崩溃。无法绕过此限制。