回答
// 文档地址 https://docs.hamibot.com/
// 唤醒屏幕
device.wakeUpIfNeeded();
// 确保屏幕已点亮
if (!device.isScreenOn()) {
toast("设备未唤醒,尝试再次唤醒...");
device.wakeUp();
sleep(1000);
}
// 请求截图权限(用于找色/找字)
if (!requestScreenCapture()) {
toastLog("请求截图失败");
hamibot.exit();
}
// 上滑解锁:从屏幕底部向上滑动
swipe(device.width / 2, device.height - 200, device.width / 2, device.height / 2, 800);
sleep(1000); // 等待上滑完成
// 判断是否出现“紧急求助”四个字
let hasEmergencyText = false;
for (let i = 0; i < 5; i++) { // 尝试最多5次检测
let img = captureScreen();
if (!img) {
sleep(1000);
continue;
}
// 在屏幕上查找“紧急求助”文本
let p = findColor(img, colors.parseColor("#ffffff"), {
region: [0, 0, device.width, device.height],
threshold: 4,
});
if (p) {
// 可结合OCR或文字识别更精确判断
// 这里简化处理:假设找到了关键区域
toast("检测到‘紧急求助’字样");
hasEmergencyText = true;
break;
}
sleep(1000);
}
// 如果检测到“紧急求助”,输入密码 123456
if (hasEmergencyText) {
toast("开始输入密码 123456");
// 示例数字密码布局坐标(以常见九宫格为例,需根据实际界面调整)
const keyPos = {
1: [device.width * 0.2, device.height * 0.7],
2: [device.width * 0.5, device.height * 0.7],
3: [device.width * 0.8, device.height * 0.7],
4: [device.width * 0.2, device.height * 0.8],
5: [device.width * 0.5, device.height * 0.8],
6: [device.width * 0.8, device.height * 0.8],
7: [device.width * 0.2, device.height * 0.9],
8: [device.width * 0.5, device.height * 0.9],
9: [device.width * 0.8, device.height * 0.9],
0: [device.width * 0.5, device.height * 0.95],
};
const password = "123456";
for (let digit of password) {
let pos = keyPos[parseInt(digit)];
click(pos[0], pos[1]);
sleep(500); // 每次点击间隔
}
toast("密码输入完成");
} else {
toast("未检测到‘紧急求助’,无需输入密码");
}
hamibot.exit();
说明:
- 唤醒屏幕:使用
device.wakeUpIfNeeded()和device.isScreenOn()确保设备已唤醒。 - 上滑解锁:通过
swipe()模拟从屏幕下方向上的滑动手势,触发解锁流程。 - 查找“紧急求助”:
- 使用
findColor或结合 OCR 更精准识别文字。此处为简化示例,建议在真实场景中结合ocr.recognizeText()来判断是否存在该文本。
- 使用
- 输入密码:
- 根据虚拟键盘的坐标模拟点击。你需要根据目标设备的实际密码界面调整每个数字的位置。
⚠️ 注意:本脚本基于通用逻辑编写,具体坐标和颜色值需要根据实际机型、系统版本(如 MIUI、EMUI)进行调试校准。
推荐增强功能(可选):
若要更准确地识别“紧急求助”文本,请引入 OCR 支持:
// 启用OCR识别
const ocrResult = ocr.recognizeText(captureScreen());
if (ocrResult && ocrResult.includes("紧急求助")) {
toast("OCR确认检测到‘紧急求助’");
hasEmergencyText = true;
}
确保你的 Hamibot 版本支持 OCR 并已启用相关模块。
ℹ️ 本回答由 AI 生成,内容仅供参考