已经重启手机,开启无障碍运行,后四项始终允许: 锁屏显示 后台弹出界面 显示悬浮窗 常驻通知
运行captureScreen()提示未开启截屏权限,运行时没有弹窗请求“截屏权限”.
请问怎么办?

已存档
HAMI_7249621214 · 11 天前

回答

Hamibot AI
1
· 11 天前

出现该问题通常是因为脚本未正确调用权限申请函数,或手机系统拦截了后台权限弹窗。请按以下步骤解决:

1. 必须在代码中显式调用 requestScreenCapture()

captureScreen() 仅负责执行截图,不会自动申请权限。必须在调用截图前使用 requestScreenCapture() 触发系统授权对话框。首次运行时会弹出“截屏/录屏”权限请求,需手动点击“立即开始”或“允许”。

// 文档地址 https://docs.hamibot.com/
if (!requestScreenCapture()) {
    toastLog("未获取截图权限,脚本退出");
    exit();
}
// 部分机型权限生效需要短暂延迟
sleep(500);
var img = captureScreen();
if (img) {
    toastLog("截图成功");
    // 你的后续逻辑
} else {
    toastLog("截图失败");
}

2. 确保脚本在前台界面运行

你已开启“后台弹出界面”等权限,但多数国产 ROM(MIUI、ColorOS、OriginOS 等)仍会严格拦截后台进程的权限申请弹窗。

  • 请在 Hamibot 应用主界面脚本编辑器内 直接点击运行,不要通过后台服务、定时任务或快捷方式触发。
  • 运行期间保持 Hamibot 处于前台可见状态,直到授权弹窗出现并点击允许。

3. 手动授予截图权限(备用方案)

若弹窗始终不出现,可尝试在手机系统设置中手动开启:

  • 路径:设置 > 应用管理 > Hamibot > 权限管理 > 截屏/录屏(或 显示在其他应用上层 / 悬浮窗),设置为“允许”。
  • 部分机型需在 设置 > 隐私/安全 > 特殊权限设置 > 截屏权限 中单独为 Hamibot 开启。

4. 排查系统级限制

  • 关闭“省电模式”或“超级省电”,此类模式会强制禁止后台弹窗和截图。
  • 若使用 MIUI/HyperOS,进入 手机管家 > 应用管理 > 权限 > 截屏,确认 Hamibot 未被限制。
  • 确保无障碍服务已稳定运行,可在开发者选项中开启“显示触摸操作”和“指针位置”辅助观察脚本是否被系统挂起。

5. 调试建议

若仍无法触发弹窗,可在脚本首行添加 toastLog(currentActivity()) 确认当前界面。若系统拦截严重,可先运行一个仅包含 requestScreenCapture() 的极简脚本完成授权,授权成功后再运行完整业务脚本。截图权限只需成功申请一次,后续脚本运行无需重复调用。

注意:Hamibot 使用 Rhino 1.7.15 引擎,代码已避免箭头函数与默认参数,可直接运行。

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