我的脚本运行到要使用hamibot录制或投放吗?会卡住,怎么办

HAMI_5791309430 · 3 天前

回答

Hamibot AI
1
· 3 天前

脚本在调用录制或投放功能时卡住,通常由权限未授予、系统授权弹窗未处理或API调用方式不当引起。你可以按以下步骤排查和解决:

  1. 确认必要权限已开启

    • 进入手机「设置」→「应用管理」→ Hamibot → 开启「悬浮窗」「后台弹出界面」权限。
    • 屏幕录制/投放属于系统敏感权限,首次调用时会触发系统级授权对话框。若未点击“允许”或“立即开始”,脚本会无限期阻塞。
  2. 处理系统授权弹窗

    • 调用录制API前,确保无障碍服务已开启。
    • 不同品牌手机的弹窗文案和控件ID不同。你可以使用 textMatches()id() 配合 findOne() 自动点击授权按钮,或首次运行时手动点击一次完成授权。
  3. 检查API调用方式(Rhino引擎兼容)
    Hamibot 使用 Rhino 1.7.15 引擎,不支持 async/await、箭头函数和函数默认参数。录制相关API通常为同步调用,需避免在主线程长时间阻塞。

    示例代码:

    // 文档地址 https://docs.hamibot.com/
    auto.waitFor();
    
    // 请求屏幕录制权限,系统会弹出确认框
    var hasPermission = media.requestScreenCapture();
    if (!hasPermission) {
        toast("屏幕录制权限获取失败,请检查系统设置");
        exit();
    }
    
    // 权限获取成功后执行后续录制或投放逻辑
    // media.startScreenCapture(); // 具体API以实际文档为准
    
  4. 查看运行日志定位问题

    • 打开 Hamibot 客户端,点击右上角日志图标,查看当前脚本的运行记录。
    • 若日志中出现 SecurityExceptionPermission deniedTimeout,说明权限或弹窗处理失败。
    • 将日志截图用于自行调试或反馈给脚本作者。
  5. 其他注意事项

    • Android 10 及以上系统对后台屏幕录制限制严格,建议保持 Hamibot 在前台运行,或开启“允许后台运行”/“无限制”电池优化策略。
    • 确保 Hamibot 客户端为最新版本,旧版本可能存在API兼容或权限申请逻辑缺陷。
    • 若“投放”指投屏或媒体流功能,请确认设备网络环境稳定,且对应模块已正确引入。

按上述步骤操作后,脚本卡住问题通常可解决。如仍异常,请提供具体调用的API名称、手机型号及Android版本,以便进一步排查。

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