一、准备工作
1️⃣ 安装 Hamibot App
前往官网下载 Hamibot 并安装到 Android 设备 前往下载
2️⃣ 申请屏幕截图权限
所有 OCR 操作需要先获取屏幕截图权限:
auto.waitFor(); // 等待无障碍服务
if (!requestScreenCapture()) {
toastLog('请授予屏幕截图权限!');
hamibot.exit(); // 权限未授予则退出
}
二、基础使用
1. 屏幕截图识别
// 截取当前屏幕
const img = captureScreen();
// 识别图片中的文字(返回带坐标的详细信息)
const result = ocr.recognize(img);
log(result);
// 仅获取纯文本内容
const textResult = ocr.recognizeText(img);
toastLog('识别结果:' + textResult);
2. 识别特定区域
// 截取指定区域(参数:左,上,右,下)
const regionImg = images.clip(img, 100, 200, 500, 400);
// 识别区域文字
const areaText = ocr.recognizeText(regionImg);
log('区域识别结果:', areaText);
三、实际应用场景示例
场景 1:识别验证码
// 截取验证码区域
const codeImg = images.clip(captureScreen(), 300, 500, 600, 600);
const verifyCode = ocr.recognizeText(codeImg);
log('验证码内容:' + verifyCode);
场景 2:自动化表单填写
// 识别输入框文字
const inputText = ocr.recognizeText(
images.clip(captureScreen(), 50, 300, 400, 350)
);
if (inputText.includes('请输入手机号')) {
// TODO 填入输入框
}
四、注意事项
识别准确率受以下因素影响:
- 图片清晰度
- 文字字体/大小
- 背景复杂度
建议:适当使用
images.grayscale()
进行灰度处理
性能优化建议:
// 限制识别区域大小
images.resize(img, [200, 300]); // 缩放图片
images.grayscale(img); // 转为灰度图
错误处理:
try {
const res = ocr.recognize(img);
} catch (e) {
toastLog('识别失败:' + e);
}
进阶建议:可结合控件选择器(UiSelector)定位元素,通过 OCR 识别辅助控件操作,实现更复杂的自动化流程。