回答
以下是为你编写的 Hamibot 脚本。代码已针对 Rhino 1.7.15 引擎进行兼容处理,并包含必要的等待与容错逻辑。
// 文档地址 https://docs.hamibot.com/
auto(); // 检查并启用无障碍服务,未启用会自动跳转设置页
// 1. 返回主桌面
home();
sleep(1500);
// 2. 打开设置应用
launchApp("设置");
sleep(2000); // 等待设置主界面渲染完成
// 封装点击函数:查找文本控件并点击,超时则终止脚本
function clickMenu(targetText) {
var widget = text(targetText).findOne(3000);
if (widget) {
widget.click();
sleep(1000); // 等待页面跳转
} else {
toast("未找到控件:" + targetText);
exit();
}
}
// 3. 依次执行菜单跳转
clickMenu("移动网络");
clickMenu("个人热点");
clickMenu("更多共享设置");
clickMenu("AP频段");
toast("操作已完成");
关键说明
- 无障碍服务:
auto()会在脚本开头自动检测无障碍权限。若未开启,系统会跳转至开启页面,开启后需重新运行脚本。 - 控件定位:使用
text("xxx").findOne()通过界面文本匹配控件。这是最稳定且跨设备兼容性较好的方式。 - 等待机制:每次点击后加入
sleep(1000)确保页面跳转完成,避免脚本执行过快导致点击失效。 - 异常处理:若 3 秒内未找到目标控件,脚本会提示并安全退出,防止后续误操作。
最佳实践与适配建议
- 系统差异适配:Android 原生、MIUI、ColorOS、HarmonyOS 等系统的设置菜单命名或层级可能不同。若脚本提示“未找到控件”,请使用 Hamibot 客户端的布局分析功能,查看目标控件的实际
text、desc或id属性,并替换脚本中的匹配条件。例如:desc("个人热点").findOne().click()。 - 滚动查找:若目标菜单不在首屏,可在
clickMenu函数中加入scrollDown()或className("androidx.recyclerview.widget.RecyclerView").scrollForward()进行滚动后再查找。 - 坐标备用方案:当文本匹配完全失效时,可结合
setScreenMetrics(1080, 1920)与click(x, y)使用固定坐标点击,但需在不同分辨率设备上单独校准。 - 性能优化:若需频繁执行此流程,可将
auto("fast")替换auto()以启用控件缓存,提升查找速度。
运行前请确保 Hamibot 已授予无障碍权限与悬浮窗权限。如有特定机型适配问题,可提供布局分析截图中的控件属性,我将为你调整选择器。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实