小米手机如何使用脚本,拉起要开始使用hamibot录制或投放权限框
允许使用 hamibot录制或投放是什么权限
如何避免在后台执行脚本时候,脚本突然不执行了,没有任何报错,感觉像是被休眠掉了
回答
在小米手机(MIUI系统)中使用 Hamibot 脚本拉起权限框,需完成以下步骤:
1. 开启必要权限
-
无障碍服务:
进入设置 > 应用管理 > Hamibot > 权限管理
,开启「无障碍服务」。
(若未开启,脚本会提示无法运行) -
后台弹出界面权限:
进入设置 > 应用管理 > Hamibot > 特殊权限设置
,允许「后台弹出界面」权限。
2. 请求屏幕录制权限
在脚本中调用 requestScreenCapture()
方法可触发系统权限弹窗。完整代码如下:
// 文档地址 https://docs.hamibot.com/
// 自动点击截图权限确认框(MIUI适配)
threads.start(function () {
const check = () => {
let activity = currentActivity().toLowerCase();
// 识别包含"Hamibot"的权限弹窗
if (activity.indexOf('permission') !== -1 &&
textContains('Hamibot').exists()) {
// 点击「允许」按钮(根据实际控件ID调整)
let btn = id('android:id/button1').findOnce();
if (btn) btn.click();
return;
}
setTimeout(check, 500); // 每500ms检查一次
};
check();
});
// 请求权限
if (!requestScreenCapture()) {
toastLog('权限获取失败');
hamibot.exit();
}
// 关闭监控线程(权限成功后)
threads.shutDownAll();
sleep(1000); // 等待弹窗消失
// 此处添加你的业务代码
let img = captureScreen(); // 示例:截图
3. 注意事项
- 控件适配:MIUI 的权限弹窗控件 ID 可能不同,若代码未生效,可通过 Hamibot 的「布局分析」工具(地址:https://hamibot.cn/inspector)获取最新控件信息。
- 系统差异:若需适配其他品牌手机(如华为、OPPO),需修改
check()
函数中的文本判断条件和控件定位逻辑(参考文档中的多系统适配示例)。 - 权限异常处理:确保设备未进入「省电模式」或「后台限制」状态,避免权限被系统强制关闭。
如果仍无法解决问题,可通过 Hamibot 控制中心(地址:https://control.hamibot.cn)提交工单或发送邮件至 support@hamibot.cn
。
补充回答 1
允许使用 Hamibot 进行录制或投放的权限是 Android 系统的屏幕录制权限(CAPTURE_VIDEO_OUTPUT),在 Hamibot 中通过 requestScreenCapture()
方法请求。该权限允许 Hamibot 捕获屏幕内容,用于自动化脚本的图像识别或录制操作。
关键说明
-
权限触发
在脚本中调用requestScreenCapture()
时,系统会弹出权限确认框(如“是否允许 Hamibot 录制屏幕”),用户需手动点击「允许」。 -
系统级权限
该权限由 Android 系统管理,属于敏感权限,不同品牌手机的弹窗文案可能不同(如小米显示“屏幕录制权限”,华为可能提示“屏幕截图”)。 -
依赖基础权限
需同时开启 Hamibot 的 无障碍服务 和 后台弹出界面权限,否则脚本无法正常运行(参考知识库文档[2])。
代码示例(请求权限)
// 文档地址 https://docs.hamibot.com/
if (!requestScreenCapture()) {
toastLog("未获取到屏幕录制权限,脚本退出");
hamibot.exit();
}
// 权限获取成功后执行自动化操作
let img = captureScreen();
适配不同手机
- 控件定位:如果自动点击权限框失败(如按钮 ID 变化),需通过 Hamibot 的「布局分析」工具(地址:https://hamibot.cn/inspector)重新获取控件 ID。
- 系统差异:华为、OPPO 等品牌可能需要调整代码中的文本判断条件(如替换
textContains('Hamibot')
为系统弹窗中的关键词)。
如需进一步支持,可通过 Hamibot 控制中心提交工单或邮件至 support@hamibot.cn
。
补充回答 2
避免脚本在后台执行时因系统休眠或资源限制停止运行,需从系统权限、资源管理、代码设计三方面优化:
1. 关键权限配置
-
忽略电池优化(省电白名单)
进入设置 > 电池 > 省电管理 > 选择Hamibot > 关闭“自动管理”
,并勾选「始终允许」,防止系统后台限制。
代码请求权限(需用户手动确认):// 文档地址 https://docs.hamibot.com/ if (!device.isIgnoringBatteryOptimizations()) { alert("需要关闭电池优化", "点击确定前往设置"); device.openBatteryOptimizationSettings(); }
-
保持唤醒(WakeLock)
使用device.keepOn()
保持屏幕常亮,阻止系统休眠(需保持脚本前台活跃):device.keepOn(); // 脚本结束后释放唤醒锁 device.releaseWakeLock();
2. 代码优化策略
-
分段执行与休眠
避免长时间循环,插入sleep()
降低CPU占用:// 每5秒执行一次操作,降低资源消耗 setInterval(function () { // 执行关键操作 performAction(); }, 5000);
-
异常捕获与重启
监控脚本状态并自动重启(适用于定时任务):// 每10秒检测脚本是否存活 threads.start(function () { while (true) { sleep(10000); if (!scriptAlive()) { engines.execScriptFile("your_script.js"); break; } } });
3. 系统级适配
-
关闭系统省电限制
- 小米(MIUI):进入
省电管理 > 选择Hamibot > 关闭“限制后台活动”
。 - 华为(EMUI):进入
电池 > 应用启动管理 > 打开Hamibot的“自动管理”开关
。 - OPPO/一加:进入
电池 > 省电 > 关闭“智能冻结”和“后台冻结”
。
- 小米(MIUI):进入
-
调整开发者选项
启用不锁定屏幕
和后台进程限制 > 无限制
(开发者选项需开发者模式激活)。
4. 日志与调试
-
启用Hamibot日志
通过 Hamibot App 右上角日志入口查看系统级错误(如内存溢出、权限丢失),截图反馈给作者。- 日志定位:
Hamibot App > 右上角日志图标 > 查看最近日志
。
- 日志定位:
-
内存管理
避免大对象驻留(如长周期截图缓存),使用gc()
手动触发垃圾回收:// 定期清理内存 setInterval(function () { let img = captureScreen(); // 使用后释放 img.recycle(); java.lang.System.gc(); }, 60000);
5. 紧急恢复方案
若脚本意外停止,可通过以下代码强制重启:
// 监控脚本并自重启
threads.start(function () {
let startTime = new Date().getTime();
while (true) {
sleep(5000);
if (new Date().getTime() - startTime > 60000) {
// 超时未执行,重启脚本
engines.execScriptFile("main.js");
hamibot.exit();
}
}
});
若仍无法解决:
发送设备型号、Android版本、脚本功能至 support@hamibot.cn
,附带 Hamibot 日志截图(通过控制中心提交工单:https://control.hamibot.cn)。