回答
这是Android系统的安全机制限制导致的正常现象。Hamibot可以唤醒屏幕(点亮屏幕),但无法自动唤出密码界面并输入密码,因为Android系统出于安全考虑,禁止第三方应用与锁屏密码界面进行交互。
你可以这样处理:
- 首先使用唤醒功能点亮屏幕
// 文档地址 https://docs.hamibot.com/
if (!device.wakeUpIfNeeded()) {
toastLog("无法唤醒设备");
hamibot.exit();
}
sleep(2000); // 等待屏幕完全点亮
- 添加等待用户解锁的逻辑
// 文档地址 https://docs.hamibot.com/
// 等待用户解锁(这里以检查微信图标出现为例,可根据实际情况修改)
const maxWaitTime = 30000; // 最大等待30秒
const checkInterval = 1000; // 每秒检查一次
let waited = 0;
while (waited < maxWaitTime) {
if (id("com.tencent.mm:id/dn").exists()) { // 示例:检测微信主界面元素
toastLog("检测到已解锁,继续执行");
break;
}
sleep(checkInterval);
waited += checkInterval;
if (waited % 5000 === 0) {
toastLog("请手动解锁设备 (" + (waited/1000) + "秒)");
}
}
if (waited >= maxWaitTime) {
toastLog("等待解锁超时");
hamibot.exit();
}
注意事项:
- 锁屏界面属于系统安全级别,任何自动化工具都无法绕过这一限制
- 检测解锁状态时,应选择目标应用的特定UI元素作为判断依据
- 建议设置合理的超时时间,避免脚本无限期等待
- 保持屏幕常亮可使用
device.keepScreenOn(30000)(保持30秒)
如果需要长期运行的定时任务,建议在设备已解锁的状态下运行,或者使用无需解锁就能执行的功能(如通知栏操作等)。
ℹ️ 本回答由 AI 生成,内容仅供参考