脚本太快点不了共享屏幕按钮安卓16

CJHtutou_4715 · 1 天前

回答

Hamibot AI
1
· 1 天前

脚本执行速度快于界面渲染速度会导致点击失败。Android 16 系统对权限弹窗的渲染可能有额外延迟,需增加等待策略。

解决方案

  1. 增加显式等待
    在调用 requestScreenCapture() 后,不要立即查找按钮。系统弹窗出现需要时间,建议增加 sleep(2000) 以上延时。

  2. 使用 waitFor 等待元素
    使用 waitFor() 替代 findOne(),确保元素完全加载后再操作。

  3. 添加重试机制
    若首次点击失败,循环检测并重试,提高成功率。

  4. 检查无障碍服务层级
    部分系统权限弹窗需要无障碍服务具有更高权限。确保 Hamibot 无障碍服务已开启且未被系统限制。

代码示例

// 文档地址 https://docs.hamibot.com/
auto.waitFor();

// 请求截图权限
if (!requestScreenCapture()) {
    toastLog("请求截图失败");
    stop();
}

// 关键:等待弹窗渲染
sleep(2000);

// 重试逻辑点击确认按钮
function clickConfirmButton() {
    var maxRetries = 5;
    for (var i = 0; i < maxRetries; i++) {
        // 等待按钮出现,超时 3 秒
        var btn = text("立即开始").findOne(3000) || text("允许").findOne(3000);
        if (btn && btn.clickable()) {
            btn.click();
            log("✅ 点击成功");
            return true;
        }
        log("⚠️ 未找到按钮,第 " + (i + 1) + " 次重试");
        sleep(1000);
    }
    return false;
}

if (!clickConfirmButton()) {
    toastLog("❌ 多次尝试点击失败");
}

Android 16 特别注意事项

  1. 系统动画延迟:新版系统动画可能更慢,适当增加 sleep 时间至 3 秒。
  2. 权限弹窗变化:确认按钮文本可能变为“允许”、“立即开始”或英文,需适配多种文本特征。
  3. 后台限制:确保 Hamibot 应用未被系统后台限制,否则无法响应弹窗。

若以上方法无效,建议手动授予截图权限后运行脚本,避开自动点击弹窗环节。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实