我想创建一个黑屏状态下能定时用习讯云软件打卡的脚本

HAMI_5644762806 · 5 天前

回答

Hamibot AI
1
· 5 天前

在Android系统中,出于安全机制限制,完全黑屏(锁屏)状态下无法直接进行UI点击操作。Hamibot的标准实现方案是:定时唤醒屏幕 → 保持屏幕常亮或微亮 → 执行自动化打卡 → 完成后释放屏幕控制权让设备自动熄屏。以下是完整实现方案:

1. 完整脚本代码(Rhino 1.7.15 兼容)

// 文档地址 https://docs.hamibot.com/
// 习讯云定时打卡脚本

function main() {
    // 1. 唤醒屏幕
    device.wakeUpIfNeeded();
    
    // 2. 保持屏幕常亮(单位毫秒,此处设为5分钟)
    // 若希望省电且允许屏幕变暗,可替换为 device.keepScreenDim(300000);
    device.keepScreenOn(300000);
    
    // 3. 解锁屏幕(根据实际锁屏方式调整,建议测试机设为“无”或“滑动”)
    unlockDevice();
    
    // 4. 启动习讯云
    launchApp("习讯云");
    sleep(4000); // 等待应用冷启动
    
    // 5. 执行打卡逻辑
    performClockIn();
    
    // 6. 清理状态并返回桌面
    device.cancelKeepingAwake();
    home();
    toast("打卡任务执行完毕");
}

function unlockDevice() {
    // 示例:上滑解锁(若为密码/图案锁屏,需使用 auto.waitFor() 配合输入逻辑)
    swipe(device.width / 2, device.height * 0.85, device.width / 2, device.height * 0.15, 300);
    sleep(1000);
}

function performClockIn() {
    // 等待打卡按钮出现(超时5秒)
    var clockBtn = text("打卡").findOne(5000);
    if (clockBtn) {
        clockBtn.click();
        sleep(2000);
        toast("已触发打卡");
    } else {
        // 备用方案:根据坐标点击(需自行抓包或录制获取准确坐标)
        // click(device.width / 2, device.height * 0.6);
        toast("未识别到打卡按钮,请检查页面状态");
    }
}

main();

2. 定时任务配置

不建议在脚本内使用 setInterval 或死循环,应使用 Hamibot 控制台或客户端的定时任务功能:

  1. 将脚本保存并上传至 Hamibot 控制台。
  2. 进入「定时任务」→ 创建新任务 → 选择该脚本。
  3. 设置 Cron 表达式或可视化时间(例如每天 08:55 执行)。
  4. 勾选「唤醒设备」选项(部分版本支持),确保定时触发时能正常拉起脚本。

3. 必要权限与系统设置

脚本稳定运行依赖以下权限,缺一不可:

  • 无障碍服务:设置 → 无障碍 → 已下载的服务 → 开启 Hamibot。
  • 后台弹出界面:设置 → 应用管理 → Hamibot → 权限 → 允许后台弹出界面。
  • 电池优化白名单:设置 → 电池 → 电池优化 → 找到 Hamibot → 选择“不优化”。
  • 锁屏设置:建议将测试机锁屏方式设为“无”或“滑动”。若必须使用密码/图案锁屏,需在脚本中补充 auto.waitFor() 及密码输入逻辑。

4. 最佳实践建议

  • UI 选择器适配:习讯云版本更新可能改变按钮文本或层级。使用 Hamibot 客户端的「布局分析」工具获取准确的 text()id()desc() 选择器。
  • 网络与加载延迟:打卡前增加 sleep(3000~5000) 等待页面渲染,避免因网络延迟导致点击失效。
  • 异常处理:可在 performClockIn() 外层包裹 try...catch,捕获异常后记录日志或发送通知,便于排查。
  • 屏幕策略:若设备支持且你希望接近“黑屏”效果,使用 device.keepScreenDim() 替代 device.keepScreenOn(),可在保持自动化可用的同时降低功耗。

按上述配置部署后,脚本即可在指定时间自动唤醒设备、完成打卡并恢复待机。如需针对习讯云具体页面结构调整选择器,可提供当前页面的布局分析截图或控件信息,我将为你补充精准定位代码。

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