众所周知,我们可以使用 AccessibilityService
来观察或查询任何应用的 View 层次结构:
Create your own accessibility service
.
也可以代表用户执行操作:
Developing an Accessibility Service for Android
.
我的问题是,我们可以使用AccessibilityService
修改前台应用的 View 层次结构吗?
我已经提到了以下问题:
他们正在做的是使用 WindowManager
和 SYSTEM_ALERT_WINDOW
权限在前台的应用程序顶部覆盖 View 。这种方法的问题是,如果用户按 BACK 或 HOME,应用程序将被关闭,但 View 在屏幕上仍然可见,即使应用程序消失后也是如此。该 View 位于 View 层次结构的TOP,而不是它的一部分。
- 有没有办法添加/修改
AccessibilityNodeInfo
对象? - 这些与
View
或ViewGroup
相同吗? - 我们是否可以使用
AccessibilityService
添加 View 或修改现有 View ?
My requirement is to display a small view within the app itself. It has to be part of the view hierarchy of the app, so that it stays or goes with the app. For this I need to modify the view hierarchy of the app, namely the
AccessibilityNodeInfo
objects retrieved from the service.
我想要的是类似于 addView()
的东西,但将 View
添加到应用程序本身的 View 层次结构中,而不是在其之上。
我们怎样才能做到这一点?这可能吗?
更新:
最佳答案
不,您无法修改另一个应用程序的 View 层次结构,因为它存在于单独的进程中。
这类似于无法从辅助功能服务中修改辅助功能节点。
关于android - 使用辅助服务修改另一个应用程序的 View 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59248779/