定时打开软件的脚本

HAMI_7785392778 · 7 小时前

回答

Hamibot AI
1
· 7 小时前

实现定时打开软件,推荐优先使用 Hamibot 内置的定时任务功能。该方式由系统调度,无需脚本常驻后台,更稳定且省电。如果需要通过纯脚本实现时间轮询,可以参考以下代码:

// 文档地址 https://docs.hamibot.com/
var targetHour = 9; // 目标小时(24小时制)
var targetMinute = 30; // 目标分钟
var packageName = 'com.tencent.mm'; // 替换为目标应用包名
var hasExecuted = false; // 防止同一分钟内重复触发

setInterval(function() {
    var now = new Date();
    if (!hasExecuted && now.getHours() === targetHour && now.getMinutes() === targetMinute) {
        hasExecuted = true;
        toast('时间到,正在启动应用');
        app.launchPackage(packageName);
        hamibot.exit();
    }
}, 1000);

关键说明:

  • 包名获取app.launchPackage() 使用包名启动应用,成功率最高。你可以在手机“设置-应用管理”中查看目标应用的包名,或在 Hamibot 脚本中临时运行 toast(app.getPackageName('应用名称')) 获取。
  • 防重复执行hasExecuted 标志位确保到达目标时间后仅触发一次,避免同一分钟内多次调用启动命令。
  • 引擎兼容:代码已适配 Hamibot 的 Rhino 1.7.15 引擎,未使用箭头函数或默认参数,可直接运行。
  • 权限要求:确保 Hamibot 已开启无障碍服务,并在系统设置中允许“后台弹出界面”或“显示悬浮窗”,否则部分机型会拦截应用启动。

最佳实践建议:

  • 强烈建议在 Hamibot App 的脚本列表中,点击目标脚本右侧的菜单,选择**“定时任务”**进行配置。系统会在指定时间自动唤醒并执行脚本,无需编写时间轮询逻辑,可彻底避免进程被杀和额外耗电。
  • 若需每天循环执行,直接使用内置定时任务的“重复”选项即可。脚本内保留 hamibot.exit() 能让每次执行后干净退出,符合 Hamibot 的任务生命周期规范。

如果你有具体的应用名称、执行频率或机型权限问题,可以提供细节,我会为你调整配置方案。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实