Skip to content

API文档

iyutong edited this page Apr 13, 2025 · 3 revisions

Assists

方法 说明
openAccessibilitySetting() 打开无障碍服务设置
isAccessibilityServiceEnabled() 检查无障碍服务是否开启
getPackageName() 获取当前窗口所属包名
findById(String id) 通过id查找所有符合条件元素
AccessibilityNodeInfo.findById(String id) 在当前元素范围下,通过id查找所有符合条件元素
findByText(String text) 通过文本查找所有符合条件元素
AccessibilityNodeInfo.findByText(String text) 在当前元素范围下,通过文本查找所有符合条件元素
findByTags(String className) 根据元素类型查找元素
AccessibilityNodeInfo.findByTags(String className) 在当前元素范围下,根据类型查找元素
getAllNodes() 获取所有元素
AccessibilityNodeInfo.getNodes() 获取当前元素下所有子元素
AccessibilityNodeInfo.findFirstParentClickable() 查找第一个可点击的父元素
AccessibilityNodeInfo.getBoundsInScreen() 获取当前元素在屏幕中的范围
AccessibilityNodeInfo.gestureClick() 手势点击当前元素所处的位置
AccessibilityNodeInfo.gestureLongClick() 手势长按元素所处的位置
AccessibilityNodeInfo.click() 点击当前元素
gesture() 手势模拟,点击/路径
gestureClick(int x, int y) 点击屏幕指定位置
back() 返回
home() 回到主页
notifications() 显示通知栏
tasks() 查看最近任务
getX(int baseWidth, int x) 根据基准分辨率宽度获取对应当前设备分辨率的x坐标
getY(int baseHeight, int y) 根据基准分辨率高度获取对应当前设备分辨率的y坐标
AccessibilityNodeInfo.paste(String text) 粘贴文本到当前元素
AccessibilityNodeInfo.log() 控制台输出当前元素信息

StepCollector(步骤收集器)

方法 说明
next(int step, Runnable next) 单次步骤,step步骤序号,next步骤逻辑
nextLoop(int step, long loopDuration, long loopInterval, Runnable next) 循环步骤,step步骤序号,loopDuration循环时长,loopInterval循环间隔,next步骤逻辑

StepManager(步骤管理器)

方法 说明
execute(StepImpl stepImpl, int step) 执行步骤,stepImpl 执行的业务实现类,step 步骤序号

图像识别模块使用

图像识别模块主要是对OpenCV的模板匹配API和Android的屏幕图像获取进行了一层封装,下面是所封装API的使用说明

检查是否拥有录屏权限

Assists.isEnableScreenCapture()

请求录屏权限

Assists.requestScreenCapture()

获取屏幕图像

OpencvWrapper.getScreen()

通过Assets获取图像

OpencvWrapper.getTemplateFromAssets()

创建掩膜

OpencvWrapper.createMask(  
    Mat source,           // 原图像  
    Scalar lowerScalar,   // 可操作区域最低RGB  
    Scalar upperScalar,   // 可操作区域最高RGB  
    List<Rect> requisiteExtraRectList,  // 不可操作区域(默认为空)  
    List<Rect> redundantExtraRectList   // 可操作区域(默认为空)  
)  

添加掩膜进行模板匹配可大大提高匹配准确度,掩膜是一个黑白色的图像,白色为匹配的区域,黑色为不匹配区域,通过仅匹配关键区域提高匹配准确度

模板匹配

OpencvWrapper.matchTemplate(Mat image, Mat template, Mat mask)

image:大图图像
template:模板图像(小图)
mask:掩膜(可为null)
返回所有匹配结果,按需求进行筛选

模板匹配获取最佳结果

OpencvWrapper.matchTemplateFromScreenToMinMaxLoc(Mat image, Mat template, Mat mask)

image:大图图像
template:模板图像(小图)
mask:掩膜(可为null)
返回最佳匹配结果

筛选匹配结果获取达到阈值的匹配结果

OpencvWrapper.getResultWithThreshold(  
    Mat result,  
    double threshold,  
    double ignoreX,  // 默认为-1.0  
    double ignoreY   // 默认为-1.0  
)  

result:匹配结果
threshold:匹配值(0-1,0最低,1最高)
ignoreX:忽略的x轴范围(默认-1.0表示不忽略)
ignoreY:忽略的y轴范围(默认-1.0表示不忽略)
返回符合条件的匹配坐标列表

更多待完善...

Clone this wiki locally