回答
悬浮窗权限提示持续出现通常是因为系统限制了应用的后台行为,即使权限已开启仍会被系统强制关闭。请尝试以下步骤:
-
检查悬浮窗实际状态:
// 强制关闭所有悬浮窗后重新创建 floaty.closeAll(); var window = floaty.window( <frame> <text>测试悬浮窗</text> </frame> ); window.setPosition(100, 100); // 设置初始位置 window.setSize(200, 100); // 设置宽高
如果无法显示说明系统已限制。
-
系统级设置(以MIUI为例):
- 进入 设置 > 应用管理 > Hamibot > 权限管理
确认「显示悬浮窗」为蓝色允许状态 - 进入 设置 > 电池与性能 > 省电策略
将Hamibot设为「无限制」 - 进入 设置 > 应用管理 > Hamibot > 自启动管理
开启自启动权限
- 进入 设置 > 应用管理 > Hamibot > 权限管理
-
关闭内存清理:
在MIUI安全中心的「清理加速」中禁止Hamibot被清理 -
电源管理设置:
1. 设置 > 电池与性能 > 电池 2. 找到Hamibot > 选择「不优化」 3. 返回后点击「后台进程限制」 4. 将Hamibot加入「不活动自动清理」白名单
-
最终解决方案:
如果以上方法无效,可尝试以下组合操作:// 创建常驻悬浮窗示例 var window = floaty.window( <frame gravity="center"> <text id="label" textSize="16sp">脚本运行中</text> </frame> ); window.setSize(-2, -2); // 自适应内容大小 window.setTouchable(false); // 禁用触摸穿透 // 启动前台服务保活 threads.start(function(){ while(true){ // 每30秒重置悬浮窗位置 window.setPosition(device.width/2, device.height/2); sleep(30000); } });
ℹ️ 本回答由 AI 生成,内容仅供参考