回答
你遇到的“一直显示没有悬浮窗权限”问题,通常是因为 Hamibot 没有被系统授予“悬浮窗”或“显示在其他应用上层”的权限。这个权限是 Android 系统保护的敏感权限,必须手动开启。
以下是解决方法:
1. 在系统设置中手动开启悬浮窗权限
步骤如下:
- 打开手机 设置
- 进入 应用管理 或 应用列表(不同品牌手机名称可能不同)
- 找到并点击 Hamibot
- 点击 权限管理 或 应用权限
- 找到 “显示在其他应用上层” 或 “悬浮窗” 权限
- 将其设置为 允许
⚠️ 注意:部分手机厂商(如小米、华为、OPPO、vivo)会对该权限进行深度限制,甚至默认禁止自动化类应用使用悬浮窗,请务必确保在此处明确授权。
2. 启动 Hamibot 时检查权限提示
当你首次调用 floaty 相关功能(如 floaty.window() 或 console.show())时,Hamibot 应该会自动弹出请求悬浮窗权限的提示框。
如果没有弹出,请尝试以下代码触发:
// 文档地址 https://docs.hamibot.com/
floaty.checkPermissionAndRequest();
如果已过期或被拒绝,可通过以下方式再次引导用户去设置页开启:
// 文档地址 https://docs.hamibot.com/
if (!floaty.checkPermission()) {
toast('需要开启悬浮窗权限');
floaty.requestPermission();
}
3. 厂商特殊处理(常见问题)
- 小米(MIUI):进入「设置 > 应用 > Hamibot > 权限管理 > 显示在其他应用上层」→ 允许
- 华为 / 荣耀:进入「设置 > 应用 > Hamibot > 权限 > 悬浮窗」→ 允许
- OPPO(ColorOS):设置中搜索“特殊应用权限”,找到“显示在其他应用上层”,允许 Hamibot
- vivo(Funtouch OS / OriginOS):进入“应用与权限”→“权限管理”→“悬浮窗”→ 找到 Hamibot → 允许
有些系统还会在锁屏或清理后台后自动关闭此权限,建议将 Hamibot 加入 电池优化白名单 和 后台运行白名单。
4. 验证是否获取权限
你可以通过以下代码判断当前是否拥有悬浮窗权限:
// 文档地址 https://docs.hamibot.com/
if (floaty.checkPermission()) {
log('已获得悬浮窗权限');
} else {
log('缺少悬浮窗权限');
floaty.requestPermission();
}
完成以上步骤后重启脚本,问题应该就能解决。如果仍然无法显示悬浮窗,请确认是否有第三方安全软件拦截了权限。
ℹ️ 本回答由 AI 生成,内容仅供参考