如何检查辅助功能服务是否崩溃(Android Pie现在在设置中显示此信息)?

问题描述 投票:1回答:1

我发现Android 9现在shows info if accessibility service stopped working

对于试图利用辅助功能API的开发人员来说,这总是一件痛苦的事。

  • 辅助功能看起来像启用,但服务已停止。要让它恢复工作,需要关闭和重新启用辅助功能。
  • 如果Google完全修复了这一点,我会很高兴,但现在他们只是显示了一个提示,即手动禁用它是一件好事。

不是最好的东西,但至少是一些东西。

  • 所以,我试图找出系统如何知道服务是否崩溃。碰巧有一个名为AccessibilityUtil的类,它包含hasServiceCrashed方法。
  • 不幸的是,它检查AccessibilityNodeInfo中隐藏的字段crashed,这对第三方开发人员(因为反射拒绝)以及以前的Android版本不可用。

所以我想知道是否有另一种方法从系统获取信息,这表明我的可访问性服务崩溃/停止工作,并且需要用户的操作。从棒棒糖开始。提示赞赏。

android accessibilityservice android-accessibility accessibility-api
1个回答
0
投票

Android通常会阻止应用程序在重复崩溃时运行。对于可访问性服务的这种行为显然会影响依赖于该服务的用户,但由于这些服务可以有效地控制UI,因此重复崩溃的用户也可能使该设备无法使用。

我没有想到其他人会对AccessibilityServiceInfo中的崩溃字段感兴趣。我不幸地使用仅供系统使用的数据来填充该字段。我将启用的服务列表与绑定的列表进行比较。

如果您对服务被阻止运行感兴趣,可以通过跟踪何时调用onBind和onUnbind并查看AccessibilityManager中启用的服务列表来执行类似操作。

© www.soinside.com 2019 - 2024. All rights reserved.