使用adb输入进行一些滑动手势

时间:2016-09-20 13:26:11

标签: android shell input adb

尝试使用“adb shell input”模拟某些曲线的手势。在“su”流中执行所有命令。我怎样才能制作曲线?找到这种方式,但它不起作用:

CommandClick.su("input swipe 520 430 520 815 1000 && input swipe 520 815 675 815 1000");

CommandClick.su

public static void su(String... commands) {
new CommandClick(SU).command(commands).finish();}

CommandClick

 try {
                dataOutputStream.writeBytes(command + "\n");
                dataOutputStream.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }

我想要像一条线一样刷两次......

1 个答案:

答案 0 :(得分:0)

尝试使用sendevent命令。

语法:sendevent <device> <command> <argument> <value>

sendevent将您想要的任何事件直接发送到输入设备事件队列。要复制复杂的滑动,您需要生成:

  1. 开始触摸(又名手指向下)
  2. 新点(又名手指移动) - 尽可能多的
  3. 结束触摸(又名手指向上)
  4. 上述每项操作均包括:

    sendevent <device> <parameters for the operation type>
    sendevent <device> 3 0 <x-coord>
    sendevent <device> 3 1 <y-coord>
    sendevent <device> 0 0 0    # (event separator)
    

    特定设备以及操作类型的参数可能会根据您模拟事件的设备类型和品牌而有所不同。获取这些详细信息的最佳方法是运行getevent,将几次滑动的输出传输到文件并查看输出。

    这些链接更详细:

    1. [活动指南] (http://www.softteco.com/blog/android-writing-events-low-level-touch-screen-automated-shell-test-part-1/

    2. [使用sendevent进行模式解锁的Shell脚本] (https://github.com/mattwilson1024/android-pattern-unlock/blob/master/unlock.sh