使用帮助辅助功能服务在其他应用中绘制视图的多个应用无法同时运行

时间:2017-11-01 10:00:50

标签: android accessibilityservice android-accessibility

我在设备上的两个不同应用中有两个辅助功能服务。他们每个人都对其他应用程序有一些看法。我面临以下问题:当启用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开始有一些改进吗? 如果有办法让它们同时工作,你能不能给我一个实现呢?

1 个答案:

答案 0 :(得分:2)

你实际上根本无法在Pre Android N上运行两个辅助功能服务。一个将永远崩溃,并创建一个在后台运行的陈旧/守护程序服务,阻止您重新启动崩溃的服务。这与服务功能及其功能无关。事实上,即使是使用Android Instrumentation测试运行的虚假UIAutomation服务也会导致正在运行的服务崩溃。没有办法解决这个限制。