回答
根据常见问题及你的截图场景,以下是启动失败的可能原因及解决方案:
1. 权限未正确授予
- 现象:截图中显示浏览器地址栏有权限弹窗,设备未开启无障碍服务或截图权限。
- 解决:
- 在设备上打开 设置 > 应用管理 > Hamibot > 权限管理,确保授予以下权限:
- 无障碍服务(强制)
- 存储权限(用于读写日志)
- 悬浮窗权限(部分设备需要)
- 运行脚本时若弹出权限确认框,需手动点击「允许」(参考文档5的自动点击逻辑处理)。
- 在设备上打开 设置 > 应用管理 > Hamibot > 权限管理,确保授予以下权限:
2. 未通过 Hamibot 控制中心正确启动
- 现象:从浏览器或控制中心直接点击脚本无响应。
- 解决:
- 确保使用推荐浏览器(Edge/Chrome),并添加控制中心到主屏幕(文档3)。
- 登录 Hamibot 账号后,进入控制中心「控制页面」:
- 点击【新增】,选择设备和脚本。
- 保存后点击【添加到首页】,从首页直接启动(见文档3步骤图示)。
3. 令牌或脚本ID错误
- 现象:调用开发脚本接口返回失败(如401未授权或404找不到脚本)。
- 解决:
- 检查代码中的
authorization
字段是否为 hmp 开头的令牌(文档1)。 - 确认脚本ID是否正确(如
GET /v1/devscripts/{开发脚本_id}
中的 ID)。 - 通过以下代码验证令牌和ID:
// 文档地址 https://docs.hamibot.com/ var res = http.get('https://api.hamibot.com/v1/devscripts', { headers: { authorization: '你的令牌(hmp 开头)' } }); if (res.statusCode == 200) { toastLog('脚本列表: ' + JSON.stringify(res.body.json())); } else { toastLog('获取脚本失败: ' + res.statusMessage); }
- 检查代码中的
4. 脚本依赖的 Hamibot 版本不匹配
- 现象:脚本调用
requiresHamibotVersion()
后立即退出。 - 解决:
- 在脚本开头添加以下代码检查当前版本:
// 文档地址 https://docs.hamibot.com/ toastLog('当前Hamibot版本: ' + app.hamibot.versionName); // 替换为脚本要求的版本 requiresHamibotVersion("1.4.3");
- 若版本过低,请更新 Hamibot 客户端。
- 在脚本开头添加以下代码检查当前版本:
5. 日志文件写入失败
- 现象:脚本执行无输出,控制台无日志。
- 解决:
- 检查是否授权存储权限(见第1步)。
- 手动检查日志路径是否存在(默认
/Hamibot/logs/
),或修改日志目录为可写路径:// 文档地址 https://docs.hamibot.com/ const LOG_DIR = '/sdcard/Hamibot/logs/'; // 确保存储权限开启 if (!files.exists(LOG_DIR)) { files.createWithDirs(LOG_DIR); }
6. 截图权限未持久化
- 现象:首次运行提示截图权限,点击允许后仍无法启动。
- 解决:
- 参考文档5的自动点击代码,在脚本开头添加持久化权限请求逻辑。
- 修改代码中的
threads.shutDownAll()
延迟时间,确保弹窗完全关闭:sleep(3000); // 延长等待时间 threads.shutDownAll();
最终排查步骤
- 检查设备 无障碍服务是否开启(强制)。
- 确认通过 Hamibot控制中心 或
auto.waitFor()
显式请求权限。 - 运行以下代码测试基础功能:
// 文档地址 https://docs.hamibot.com/ toastLog('无障碍服务: ' + auto.service != null); if (!requestScreenCapture()) { toastLog('截图权限失败'); } else { toast
ℹ️ 本回答由 AI 生成,内容仅供参考