adb shell模拟点击事件 input

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

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

usage: input ...

       input text <string>
       input keyevent <key code number or name>
       input tap <x> <y>
       input swipe <x1> <y1> <x2> <y2>
input text 模拟输入内容
input keyevent 模拟 手机的按键  比如音量键  home 键 返回键     input keyevent 3  模拟按下返回键,很强大的 还有 手柄的一系列按键,可以自己查查
input tap  模拟点击 屏幕  生成 down-up事件 ,例如   input tap  300 400; 这个是 PX 值
 input swipe  模拟滑动屏幕    例如   input swipe 250 250 300 300
想更好的看到这些 效果 。就在屏幕上显示 你手点击的位置
布局文件 就一个 button  一个 textview   textview用来 显示点击的位置。
你可以先使用 adb shell 进到命令行   然后  input tap  试试 看看手机 有没有反应
button 用来在程序中模拟点击屏幕。
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);
    }

}






  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值