回答
以下是满足你需求的 Hamibot 脚本代码。代码已针对 Rhino 1.7.15 引擎进行兼容处理,并包含完整的执行逻辑与容错机制。
// 文档地址 https://docs.hamibot.com/
"auto"; // 启用无障碍模式
// 配置目标应用(可填写应用名称或完整包名)
var targetApp = "微信";
function main() {
// 1. 解析应用包名
var pkg = getPackageName(targetApp);
if (!pkg) {
pkg = targetApp;
if (!getAppName(pkg)) {
toast("未找到目标应用,请检查名称或包名是否正确");
exit();
}
}
// 2. 打开应用
toast("正在启动应用...");
app.launch(pkg);
// 等待应用主界面加载(可根据设备性能微调)
sleep(3000);
// 3. 等待 20 秒
toast("保持运行 20 秒...");
sleep(20000);
// 4. 关闭应用
toast("正在强制关闭应用...");
// 优先使用 Shell 命令强制停止,执行效率高
var shellResult = shell("am force-stop " + pkg, true);
if (shellResult.code !== 0) {
// 若 Shell 无权限,降级为通过系统设置页点击“强制停止”
forceStopViaSettings(pkg);
}
// 5. 返回桌面(脚本结束后会自动交还控制权至 Hamibot)
home();
toast("任务完成");
}
// 备用方案:通过系统设置页强制停止应用
function forceStopViaSettings(pkg) {
app.openAppSetting(pkg);
sleep(1500);
var btn = text("强制停止").findOne(3000) || text("强行停止").findOne(3000);
if (btn) {
btn.click();
sleep(500);
var okBtn = text("确定").findOne(2000);
if (okBtn) okBtn.click();
}
// 返回两次退出设置页
back(); sleep(300); back(); sleep(300);
}
main();
关键说明与最佳实践:
- 权限前置检查:脚本依赖 Android 无障碍服务与后台弹窗权限。若未正确授权,脚本会直接提示“运行结束”。请在手机「设置」→「无障碍」中开启 Hamibot 服务,并在「应用管理」→ Hamibot → 权限管理中开启「后台弹出界面」。
- 应用标识替换:将
var targetApp = "微信";替换为你实际需要操作的应用。支持中文名称(如"抖音")或包名(如"com.ss.android.ugc.aweme")。 - 关闭策略:脚本优先调用
am force-stop实现静默关闭。该命令在多数设备上无需 Root 即可生效。若设备限制 Shell 权限,会自动降级为模拟点击系统设置页的“强制停止”按钮,已兼容主流 Android 机型文案。 - 返回 Hamibot:执行
home()后脚本自然结束,Hamibot 控制台或悬浮窗会自动恢复前台焦点。你可在控制台查看完整运行日志。 - 稳定性优化:若目标应用启动较慢或包含开屏广告,可适当增加
sleep(3000)的时长,或替换为waitForActivity(pkg, 10000)进行界面状态监听。
如需适配特定品牌手机的设置页 UI、增加重试逻辑或集成定时任务,可提供具体机型与需求,我将为你调整脚本结构。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实