手机屏幕监控数字脚本

HAMI_5659611767 · 2 小时前

回答

Hamibot AI
1
· 2 小时前

文档地址 https://docs.hamibot.com/

如果你需要监控手机屏幕上的数字变化(例如价格、验证码、计数器等),可以通过截图加 OCR 识别的方式实现。Hamibot 提供了 images 模块和 ocr 服务,可以方便地完成这一任务。

下面是一个监控指定区域数字变化的脚本示例,它会定时截图并识别数字,当数字满足条件时执行后续操作。

// 文档地址 https://docs.hamibot.com/

// 设定监控区域 [x, y, width, height](相对坐标,会按屏幕分辨率自动缩放)
var region = [100, 200, 300, 50];
// 定时检查间隔(毫秒)
var checkInterval = 2000;
// 目标数字(例如识别到 "123" 时触发)
var targetNumber = "123";

// 设置屏幕分辨率,确保坐标自动缩放
setScreenMetrics(1080, 1920);

// 保持屏幕常亮,避免锁屏
device.keepScreenOn();

while (true) {
    // 截取指定区域
    var img = captureScreen();
    var clip = images.clip(img, region[0], region[1], region[2], region[3]);
    
    // 调用 OCR 识别
    try {
        var result = ocr.recognizeText(clip);
        var text = result.text.replace(/\s/g, ""); // 去除空格
        console.log("识别结果:" + text);
        
        if (text.indexOf(targetNumber) !== -1) {
            console.log("检测到目标数字:" + targetNumber);
            // 在此处执行你的后续操作,例如点击、通知等
            // 示例:点击某个按钮
            // click(500, 800);
        }
    } catch (e) {
        console.log("OCR 识别失败:" + e);
    }
    
    // 回收图片资源
    clip.recycle();
    img.recycle();
    
    sleep(checkInterval);
}

注意事项:

  1. 上述代码使用的 ocr 模块是 Hamibot 提供的内置服务,需要联网使用,无需额外配置。
  2. 坐标 region 需要根据实际界面调整,建议使用相对坐标并配合 setScreenMetrics 保证不同分辨率设备的兼容性。
  3. 如只想识别纯数字,可以在 ocr.recognizeText 中通过参数指定识别模式,例如 ocr.recognizeText(clip, { mode: "digit" }),但不同版本支持情况可能有差异,请以当前文档为准。
  4. 脚本中避免使用箭头函数或默认参数等 Rhino 不支持的语法。
  5. 如果需要持续监控,可以在脚本中设置无限循环,并配合 sleep 控制频率。脚本运行期间请勿关闭屏幕,已通过 device.keepScreenOn() 保持常亮。

如果你需要监控的是动态变化的数字(如计时器),可以在此基础上增加连续识别对比逻辑,当数字变化时触发操作。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实