回答
要实现对手机元宝AI的自动化操作并记录时间及截图,请参考以下实现方案:
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
// 请求截图权限
if (!requestScreenCapture()) {
toastLog('需要授权Hamibot屏幕截图权限');
exit();
}
// 获取时间戳
function getCurrentTime() {
return new Date().toLocaleString();
}
// 第一阶段:初始截图
var startTime = getCurrentTime();
var img1 = captureScreen();
images.save(img1, "/sdcard/hamibot/start_screenshot.png");
toastLog("已保存初始截图 @ " + startTime);
// 执行点击操作(需根据实际界面坐标调整)
click(800, 1800); // 点击输入框位置
setText("你的问题内容"); // 输入查询内容
// 第二阶段:等待回答结束(根据实际界面特征调整检测逻辑)
var timeout = 30; // 超时时间(秒)
var interval = 1000; // 检测间隔
var startTimeDetect = Date.now();
while (true) {
// 示例:通过检测特定颜色组合判断回答完成
var checkImg = captureScreen();
var p = images.findMultiColors(
checkImg,
'#FFFFFF', // 主色
[[500, 1200, '#000000']], // 子色坐标
{ region: [0, 0, 1080, 1920] }
);
if (p || (Date.now() - startTimeDetect > timeout * 1000)) {
break;
}
sleep(interval);
}
// 最终截图
var endTime = getCurrentTime();
var img2 = captureScreen();
images.save(img2, "/sdcard/hamibot/end_screenshot.png");
toastLog("已保存完成截图 @ " + endTime);
// 输出时间记录
toastLog("请求时间:" + startTime + "\n结束时间:" + endTime);
关键点说明:
- 权限请求:确保在脚本开始时调用
auto.waitFor()
和requestScreenCapture()
获取必要权限 - 时间戳获取:使用
new Date().toLocaleString()
获取可读性强的时间格式 - 图像保存:使用
images.save()
将截图保存到指定路径 - 完成检测:通过颜色识别算法检测界面变化(需根据实际界面特征调整坐标和颜色值)
- 超时机制:设置最大等待时间避免死循环
注意事项:
- 实际坐标需通过Hamibot的界面分析工具获取
- 颜色检测参数应根据元宝AI界面的实际样式调整
- 建议在低分辨率屏幕(如1080p)上运行以提高识别准确性
- 遇到异常情况应添加重试机制(如多次检测失败时重启流程)
请根据实际设备屏幕尺寸和元宝AI界面布局调整坐标参数。如需更精确的元素定位,建议结合Hamibot的UI选择器功能。
ℹ️ 本回答由 AI 生成,内容仅供参考