回答
要实现离线脚本的定时触发,需要结合设备唤醒和定时任务机制。以下是具体操作步骤:
- 设备唤醒配置
// 保持屏幕常亮(建议设置超时时间)
device.keepScreenOn(3600 * 1000); // 保持1小时
// 当屏幕熄灭时自动唤醒
device.wakeUpIfNeeded();
- 定时任务实现
// 每隔5分钟执行一次
var interval = 5 * 60 * 1000;
setInterval(function(){
// 你的脚本逻辑代码
toast("执行定时任务");
}, interval);
- 系统级唤醒设置
- 进入手机【设置】→【电池】→【省电策略】
- 关闭Hamibot的自动休眠限制
- 开启【自启动】权限
- 持久化定时方案(需Root)
// 使用系统闹钟服务(需Root权限)
var alarm = context.getSystemService(android.content.Context.ALARM_SERVICE);
var intent = new android.content.Intent("com.hamibot.script.action.RUN");
intent.setPackage("org.hamibot.hamibot");
intent.putExtra("scriptId", "your_script_id");
var pendingIntent = android.app.PendingIntent.getBroadcast(context, 0, intent, 0);
alarm.setRepeating(android.app.AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
注意事项:
- 部分设备需在开发者选项中开启【后台进程限制】为"无限制"
- MIUI系统需单独配置【锁屏唤醒】权限
- 脚本中建议添加
auto.waitFor()
确保无障碍服务持续运行 - 长时间运行建议使用
device.keepScreenDim()
替代常亮以省电
ℹ️ 本回答由 AI 生成,内容仅供参考