** 设备**:Android 手机(未Root)
技术实现:AccessibilityService 无障碍服务
业务场景:
在一部未Root的Android手机上,通过无障碍服务实现在其他App页面上,进行搜索操作,输入完文字信息之后,需要点击软键盘上的搜索按键才能完成
具体问题:
现在遇到一个问题,如何对软键盘上的按键(比如搜索按键KeyEvent.KEYCODE-SEARCH)进行点击操作?
目前已经做过一些尝试:
1 遍历寻找软键盘上按键的NodeInfo
在软键盘弹起后,通过AccessibilityService.getRootInActiveWindow()获取到页面元素后,向下遍历所有的NodeInfo,无法找到与搜索按键相关的NodeInfo
2 AccessibilityService.getSoftKeyboardController()
官方提供了关于软键盘的控制,但其只能控制软键盘打开和关闭,无法操作指定按键
3 AccessibilityService.performGlobalAction()
全局事件中,没有操作软键盘按键的Action
经过上面几种方式的尝试都失败了
请大家帮忙,给予一些解决方法或思路
final Path path = new Path();
path.moveTo(X, Y); //X和Y是需要双击的按钮坐标
GestureDescription.Builder builder = new GestureDescription.Builder();
GestureDescription gestureDescription = builder.addStroke(
new GestureDescription.StrokeDescription(path, 0, 100)).build();
dispatchGesture(gestureDescription, new GestureResultCallback() {
@Override
public void onCompleted(GestureDescription gestureDescription) {
super.onCompleted(gestureDescription);
}
@Override
public void onCancelled(GestureDescription gestureDescription) {
super.onCancelled(gestureDescription);
Log.d(TAG, "scroll cancell.");
}
}, null);
https://blog.csdn.net/tanmx219/article/details/81270404
同求方法,现在貌似不能通过搜索的方式,来完成action的动作