您的位置:首页 > 运维架构 > Shell

adb shell模拟点击事件 input

2016-02-23 09:39 495 查看
1,最开始使用这个的时候 想到是 monkey 事件 因为这个是 可以盲点屏幕的 ,使用的参数 不同 生成的点击效果不同,后来 没有找到 monkey 固定点击的位置。

   查到的 [b]input     是可以完成 模拟点击的需求 [/b]
[b]adb shell 中 直接输入 input[/b]

usage: input ...
       input text <string>
       input keyevent <key code number or name>
       input tap <x> <y>
       input swipe <x1> <y1> <x2> <y2>
[b]input text 模拟输入内容[/b]
[b][b]input keyevent 模拟 手机的按键  比如音量键  home 键 返回键     input
keyevent 3  模拟按下返回键,很强大的 还有 手柄的一系列按键,可以自己查查

[/b][/b]
[b][b]input
tap  模拟点击 屏幕  生成 down-up事件 ,例如   input tap  300 400; 这个是 PX 值

[/b][/b]
[b] input
swipe  模拟滑动屏幕    例如  [b] input swipe
250 250 300 300
[/b][/b]
[b]想更好的看到这些
效果 。就在屏幕上显示 你手点击的位置
[/b]
[b]布局文件
就一个 button  一个 textview   textview用来 显示点击的位置。
[/b]
你可以先使用 adb shell 进到命令行   然后  input tap  试试 看看手机 有没有反应
[b]button
用来在程序中模拟点击屏幕。
[/b]
package com.example.liqingju.onth;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.io.IOException;

public class MainActivity extends Activity {
private TextView myText;
private Button mButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myText = (TextView) findViewById(R.id.mytext);
mButton = (Button) findViewById(R.id.bt_settab);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"点击了。。",Toast.LENGTH_LONG).show();
exeOrderOnTouchEvent(600, 600);

}
});
}

@Override
public boolean onTouchEvent(MotionEvent event) {
String str = String.format("X=%.2f  Y=%.2f", event.getX(), event.getY());
myText.setText(str);
return super.onTouchEvent(event);
}

public void exeOrderOnTouchEvent(float X, float Y) {
try {
Process ps = Runtime.getRuntime().exec(orderStr(X, Y));

} catch (Exception e) {
e.printStackTrace();
}
}

public String orderStr(float X, float Y) {
return String.format("input tap %.2f %.2f", X, Y);
}

}





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: