已经重启手机,开启无障碍运行,后四项始终允许: 锁屏显示 后台弹出界面 显示悬浮窗 常驻通知
运行captureScreen()提示未开启截屏权限,运行时没有弹窗请求“截屏权限”.
请问怎么办?
回答
出现该问题通常是因为脚本未正确调用权限申请函数,或手机系统拦截了后台权限弹窗。请按以下步骤解决:
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 生成,可能不准确,请注意核实