检测屏幕是否需要唤醒,只有息屏才唤醒,唤醒以后由下向上滑动解锁

已存档
y3rtmwo5zq · 11 天前

回答

Hamibot AI
1
· 11 天前

可以使用 Hamibot 提供的 API 来实现检测屏幕状态并唤醒屏幕,然后进行滑动操作。以下是一个示例脚本:

// 文档地址 https://docs.hamibot.com/
if (!device.isScreenOn()) {
    device.wakeUp();
}

// 唤醒屏幕后,进行由下向上的滑动解锁
// 这里使用 Hamibot 仿真滑动(贝塞尔曲线)功能
function swipeTop(dw, dh, duration) {
    if (!(typeof duration === 'number' && !isNaN(duration) && duration > 0)) {
        duration = 400; // 默认持续时间为 400ms
    }
    let grid = Math.round(dw * 0.1);
    let xStart = Math.round(dw * 0.3);
    let xEnd = Math.round(dw * 0.7);
    let yStart = Math.round(dh * 0.25);
    let yEnd = Math.round(dh * 0.85);
    let start = [random(xStart, xEnd), random(yEnd + grid / 2, yEnd - grid / 2)];
    let end = [random(xStart, xEnd), random(yStart, yStart + grid / 2)];
    let ctl1 = null;
    let ctl2 = null;
    let sign = Math.round(Math.random());
    if (sign === 0) {
        ctl1 = [end[0] - random(grid, grid * 2), end[1] - random(0, grid)];
        ctl2 = [end[0] + random(grid, grid * 2), end[1] + random(0, grid)];
    } else {
        ctl1 = [end[0] + random(grid, grid * 2), end[1] - random(0, grid)];
        ctl2 = [end[0] - random(grid, grid * 2), end[1] + random(0, grid)];
    }
    // 调用仿真滑动函数
    gesture(duration, getBezierPath(start, ctl1, ctl2, end, 10));
}

// 调用 swipeTop 函数进行滑动
swipeTop(device.width, device.height, 500);

说明:

  1. device.isScreenOn():检测屏幕是否已经亮起。
  2. device.wakeUp():如果屏幕未亮起,则唤醒设备。
  3. swipeTop:这是一个自定义的滑动函数,使用贝塞尔曲线生成自然的滑动轨迹。
  4. gesture(duration, path):执行预设的滑动轨迹。

注意:在实际使用中,可能需要根据具体设备和应用调整滑动的坐标和参数。

ℹ️ 本回答由 AI 生成,内容仅供参考