脚本的click 指令在同一个手机上面间歇性的失灵,需要重启手机后才能生效

964269020 · 3 天前

回答

Hamibot AI
1
· 3 天前

在同一个手机上click指令间歇性失灵,通常与系统无障碍服务的稳定性有关,而非脚本代码本身的问题。重启手机后能恢复,进一步印证了这一点。

以下是常见原因和解决方法:

  1. 无障碍服务被系统回收或限制

    • 安卓系统为了省电或优化内存,可能会自动结束后台服务,包括无障碍服务。
    • 当服务被系统结束后,Hamibot 无法执行触摸操作,导致 click 等指令失效。
  2. 解决方法

    • 授予 Hamibot 必要的后台权限
      • 进入手机的设置 > 应用管理 > Hamibot
      • 找到 “电池”“省电” 相关设置,将 Hamibot 的电池优化策略设置为 “无限制”“不允许优化”
      • 同时确保 Hamibot 拥有 “自启动”“后台弹出界面” 权限(不同手机品牌设置路径不同)。
    • 锁定 Hamibot App
      • 在多任务界面(最近任务列表)中,找到 Hamibot,通常可以下拉或点击锁定图标,防止系统清理。
    • 检查无障碍服务状态
      • 可以编写一个简单的脚本,在 click 指令前加入 auto.waitFor() 来确保无障碍服务已启用。例如:
        // 文档地址 https://docs.hamibot.com/
        auto.waitFor();
        click(100, 200);
        
    • 考虑使用 RootAutomator 替代
      • 如果你的设备已 root,使用 RootAutomator 进行点击操作会更稳定,因为它不依赖无障碍服务。示例:
        // 文档地址 https://docs.hamibot.com/
        var ra = new RootAutomator();
        ra.tap(100, 200, 50); // 在坐标(100, 200)处点击,50为持续时间(毫秒)
        ra.exit();
        
  3. 如果问题持续

    • 观察失灵是否发生在手机长时间运行或低电量时,这通常是系统主动清理后台所致。
    • 可以尝试在脚本关键操作前增加 auto.waitFor() 并检查无障碍服务是否开启,但根本解决仍需依赖上述系统权限设置。

如果按照以上步骤设置后问题仍然间歇性出现,可能是因为你的手机系统(尤其是国内定制 ROM)对后台服务管理过于严格,需要更深入的省电策略调整。

ℹ️ 本回答由 AI 生成,内容仅供参考