辅助功能服务单击自定义视图不起作用(performClick不被覆盖)

时间:2018-10-25 19:29:35

标签: android accessibilityservice android-accessibility

如何从Accessibility Service中单击自定义视图(iOS样式的开关),在该视图中onTouchEvent方法被覆盖,而不是performClick。我创建了一种用于在服务中进行调试的方法,方法是单击视图以显示日志中的所有事件。当我单击该自定义视图以外的所有其他按钮时,都会在日志中显示。如果您通过ID找到视图并从AccessibilityService调用performAction(CLICK),它绝对不会响应。我知道可以使用dispatchGesture并模拟滑动,但是它仅适用于Android 7.0(api 24)。有没有针对这种情况的解决方法?预先感谢您的任何提示。 辅助功能服务的配置:

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeWindowStateChanged|typeWindowContentChanged"
android:accessibilityFlags="flagDefault|flagIncludeNotImportantViews|flagReportViewIds|flagRequestTouchExplorationMode"
android:canRetrieveWindowContent="true"
android:notificationTimeout="100"
android:canRequestTouchExplorationMode="true"
android:canPerformGestures="true"
android:settingsActivity="com.example.helper.MainActivity"/>

1 个答案:

答案 0 :(得分:1)

不幸的是,我不相信有解决方法。辅助功能服务取决于共享有关其显示的UI信息的应用程序。如果应用程序不公开此类操作,则实际上您无能为力,无法恢复信息。

即使使用手势分配API,您也不确定不确定哪些视图是可操作的。