Android - ADB 命令执行“拖动”手势?

问题描述 投票:0回答:1

我想模拟一个复杂的手势,比如按下手指,画一个形状,然后抬起手指。

我找到了如何使用

sendevent
执行此操作,但当我尝试
sendevent
时,我的操作系统报告权限被拒绝,所以我想使用
adb shell input
执行此操作。

我正在通过 ubuntu 操控设备,一台 Andorid 三星。

我明确不是在寻找“形状”线,即滑动命令。我正在寻找可以不间断地绘制曲线或螺旋的东西,即不是以

swipe
动作的小增量。

android adb mobile-development
1个回答
0
投票

swipe
完全可以做到。这是使用 AndroidViewClient/culebra 的示例。

#! /usr/bin/env python3
import numpy as np
from com.dtmilano.android.viewclient import ViewClient

def toint(n):
    return n.item()

def npint(a):
    return np.round(a).astype(int)

def spiral(t):
    a = 0.5  # Controls the tightness of the spiral
    b = 0.5  # Controls the spacing between turns
    g = 40 # Factor
    dx = 400 # Delta x
    dy = 600 # Delta y
    x = g * a * t * np.cos(t + b) + dx
    y = g * a * t * np.sin(t + b) + dy
    return list(zip(map(toint, npint(x)), map(toint, npint(y))))

# get helper
helper = ViewClient.view_client_helper()

# generate values for the parameter t
t = np.linspace(0, 4 * np.pi, 100)

# calculate (x, y) coordinates
segments = spiral(t)

# assume google keep is open so we can see it drawing
# see spiral.gif
helper.ui_device.swipe(segments=segments, segment_steps=5)

这就是结果(使用Google Keep绘制) enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.