精华内容
下载资源
问答
  • Android模拟点击事件

    2018-01-12 15:05:39
    安卓模拟点击事件,可以实现的方法,目前我知道的有两种,都有不同的限制条件 1.通过设备与PC连接,并且ABD接通,PC上运行事先生成好的bat文件,达到点击或者其他目的  bat文件内容:adb shell input tap 360 ...

    安卓模拟点击事件,可以实现的方法,目前我知道的有两种,都有不同的限制条件

    1.通过设备与PC连接,并且ABD接通,PC上运行事先生成好的bat文件,达到点击或者其他目的
       bat文件内容:adb shell input tap 360 1080   点击坐标360, 1080
                             ping -n 5 127.1>nul                 等待5秒
                             adb shell input tap 630 1080   点击坐标630, 1080
                             ping -n 5 127.1>nul
                             adb shell input swipe 900 1300 900 1110         从900,1300滑动到900,1100

       具体操作:将内容保存到txt文档中,重命名为xxx.bat,运行即可

    2.有root权限的手机,可以通过发送linx命令,达到效果

       private void execShellCmd(String cmd) {
            try {
                // 申请获取root权限,这一步很重要,不然会没有作用
                Process process = Runtime.getRuntime().exec("su");
                // 获取输出流
                OutputStream outputStream = process.getOutputStream();
                DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
                dataOutputStream.writeBytes(cmd);
                dataOutputStream.flush();
                dataOutputStream.close();
                outputStream.close();
            } catch (Throwable t) {
                t.printStackTrace();
            }
        }

      具体执行:execShellCmd("getevent -p");  //获取root权限
                       execShellCmd("sendevent /dev/input/event1 1 158 1");    //模拟ontouch
                       execShellCmd("sendevent /dev/input/event1 1 158 0");   //模拟ontouch
                       execShellCmd("input keyevent 3"); //home键
                       int x = new Random().nextInt(screenWidth);
                       int y = new Random().nextInt(screenheight);
                       String str = "input tap " + x + " " + y;//点击随机出来的一个坐标



    OVER

    展开全文
  • android 模拟点击事件

    2013-03-15 14:29:00
    众所周知,Linux上可以通过sendEvent来...而Android是基于Linux2.6平台的,所以也应该可以模拟点击事件,在很多网络文章中也有提到。但是我在Motolola的Xoom,Android3.0系统上,试图通过adb -d shell sendevent ...

    引用:http://bbs.chinaunix.net/thread-2317735-1-1.html

    众所周知,Linux上可以通过sendEvent来模拟键盘或者鼠标点击事件。而Android是基于Linux2.6平台的,所以也应该可以模拟点击事件,
    在很多网络文章中也有提到。但是我在Motolola的Xoom,Android3.0系统上,试图通过
    adb -d shell sendevent /dev/input/event6 3 0 180
    adb -d shell sendevent /dev/input/event6 3 1 70
    adb -d shell sendevent /dev/input/event6 1 330 1
    adb -d shell sendevent /dev/input/event6 0 0 0 
    adb -d shell sendevent /dev/input/event6 1 330 0 
    adb -d shell sendevent /dev/input/event6 0 0 0 
    来点击一个应用程序,发现无效。但在模拟器的同一个位置是可以点击到的,所以怀疑有问题。
    于是我分别用getevent来获取模拟器上点击的事件与在XOOM上点击的事件,发现两者不同。

    在模拟器上:  得到的Event是  /dev/input/event0 3 0 180 
                                                /dev/input/event0 3 1 70
                        ...........
                       这6个事件
    在真机上,我用cat /proc/bus/input/devices对比了列出的内容,touchscreen是event6, 但是得到的event却是

       /dev/input/event6: 0003 0030 0000003c

    /dev/input/event6: 0003 0032 00000004

    /dev/input/event6: 0003 0035 000008b6

    /dev/input/event6: 0003 0036 000005ab

    /dev/input/event6: 0003 0034 000000f0

    /dev/input/event6: 0003 0039 00000000

    /dev/input/event6: 0000 0002 00000000

    /dev/input/event6: 0000 0000 00000000
    ......等几十条事件
      我不明白,
    1. 为什么模拟器上点击一下只有固定6条格式,但是模拟器上出现了几十条???

    2. 参考国内很多网络资料也说,用 0003代表要控制绝对坐标,后面跟0或者1表示x或者y坐标,为什么这里却是更的0030,0032,0035,0036,0034,0039,0002这些信息??

    有哪位愿意指点,非常感谢
      

    附录: 用cat获得的设备对应event信息
    # cat /proc/bus/input/devices
    cat /proc/bus/input/devices
    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="compass"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input0
    U: Uniq=
    H: Handlers=event0
    B: EV=5
    B: REL=3f8

    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="accelerometer"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input1
    U: Uniq=
    H: Handlers=event1
    B: EV=d
    B: REL=7
    B: ABS=100 7

    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="max9635_als"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input2
    U: Uniq=
    H: Handlers=event2
    B: EV=11
    B: MSC=8

    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="gyroscope"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input3
    U: Uniq=
    H: Handlers=event3
    B: EV=5
    B: REL=38

    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="barometer"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input4
    U: Uniq=
    H: Handlers=event4
    B: EV=9
    B: ABS=1000000

    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="cpcap-key"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input5
    U: Uniq=
    H: Handlers=event5 keyreset keyreset
    B: EV=3
    B: KEY=4 0 0 0 800 0 0 0

    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="qtouch-touchscreen"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input6
    U: Uniq=
    H: Handlers=event6
    B: EV=b
    B: KEY=400 0 4 0 0 0 0 0 0 0 0
    B: ABS=2750000 11030003

    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="stingray-keypad"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input7
    U: Uniq=
    H: Handlers=event7 keyreset keychord
    B: EV=3
    B: KEY=c0000 0 0 0

    展开全文
  • Button模拟点击事件 button.performClick(); listview模拟点击事件 listview.performItemClick(listview.getChildAt(0), 0, listview.getItemIdAtPosition(0));
    Button模拟点击事件
    button.performClick();
    
    
    listview模拟点击事件
    listview.performItemClick(listview.getChildAt(0), 0, listview.getItemIdAtPosition(0));
    展开全文
  • android系统模拟点击事件发送QQ消息.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 项目是无触摸操作的,所有需要模拟点击事件点击view Instrumentation实现模拟键盘鼠标事件(经验证可以) package com.kc.kchelmetupdateservice; import android.app.Instrumentation; import android.os.System...

    项目是无触摸操作的,所有需要模拟点击事件点击view

    Instrumentation实现模拟键盘鼠标事件(经验证可以)

    package com.kc.kchelmetupdateservice;
    
    import android.app.Instrumentation;
    import android.os.SystemClock;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class OtouchActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_otouch);
            findViewById(R.id.btn_test).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(OtouchActivity.this, "点击了", Toast.LENGTH_SHORT).show();
                }
            });
            findViewById(R.id.btn_0).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    OtouchActivity.this.onClick();
                }
            });
        }
    
        private void onClick() {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    // 可以不用在 Activity 中增加任何处理,各 Activity 都可以响应
                    Instrumentation inst = new Instrumentation();
                    inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                            MotionEvent.ACTION_DOWN, 500, 500, 0));
                    inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                            MotionEvent.ACTION_UP, 500, 500, 0));
                }
            }).start();
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            Log.e("onTouchEvent", event.getX() + "");
            Log.e("onTouchEvent", event.getY() + "");
            return super.onTouchEvent(event);
        }
    }
    
    
    展开全文
  • view.performClick(); 转载于:https://www.cnblogs.com/qianyukun/p/6374109.html
  • 一、源码查看 /** * Call this view's OnClickListener, if it is defined. Performs all normal * ... } 这是Android的View的performClick源码,可以看出当调用该方法如果view设置了点击事件就会调用点击事件响应。
  • //鼠标右键模拟(双指点击) // mbinding.rTv.setOnTouchListener(new View.OnTouchListener() { // @RequiresApi(api = Build.VERSION_CODES.KITKAT) // @Override // public boolean onTouch(View view, ...
  • Android模拟点击事件

    千次阅读 2016-06-12 17:16:33
    要实现在WebView上模拟点击效果,效果一直不好,函数是搜索得到的,有几点需要注意: 1、按下和松开之间的时间要相同 2、用 dispatchTouchEvent分发事件 3、调用recycle()回收事件 private ...
  • android系统模拟点击事件发送QQ消息

    热门讨论 2014-05-26 12:39:34
    这个demo的最终效果就是,打开这个app以后,点击启动服务,然后程序会自动请求root权限,如果你的手机root过,或者有root权限管理工具的话,就选择授权,然后,手机会自动回到主页,然后打开QQ,然后搜索联系人,...
  • android开发模拟click点击事件

    千次阅读 2013-03-18 10:05:34
    android开发时,button事件一般是需要与用户交互的,即人机交互事件,用户点击时有事件响应,但有时,我们也许会需要模拟点击事件,即不是用户点击,而是程序内部使响应click事件,这时我们可以使用performClick()...
  • 主要给大家介绍了关于Android如何基于坐标对View进行模拟点击事件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
  • android 模拟滑动事件

    2017-11-22 14:55:40
    1.模拟滑动屏幕(注意越向上,值越小,以左上角为基准) a)adb shell input swipe x1 y1 x2 y2 ...2.模拟点击屏幕 a)Adb shell input tap x y b)Adb shell input tap 100 800 3.模拟key值 a) adb shell...
  • Android 模拟...关键词:MotionEvent,模拟按键,模拟点击事件,主动弹出输入法,弹出软键盘。 欢迎转载并说明转自:http://blog.csdn.net/aminfo/article/details/7887964 一、布局文件showime.xml:...
  • new Thread() { public void run() { Instrumentation inst = new Instrumentation(); inst.sendPointerSync(MotionEvent. obtain(SystemClock
  • 分享一篇使用的小技巧。在Android中对View进行基于坐标的进行点击事件模拟。点击查看原文阅读全部内容。
  • android注入代码到驱动模拟系统点击事件demo.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • Android shell获取和模拟点击事件

    千次阅读 2017-04-05 16:13:50
    1. 获取点击屏幕的坐标位置 通过 adb shell getevent 命令获得点击屏幕的位置坐标的方法: 第一步:计算比例 首先通过命令 adb shell getevent -p | grep -e "0035" -e "0036" 获得event 体系里 ...
  • Android 双指同时点击事件模拟

    千次阅读 2016-10-10 22:21:04
    Android 双指同时点击事件模拟今天有个需求是要通过双指同时点击屏幕来触发某个功能,特此看那了下Android多点触控的API,首先发现 MotionEvent 类里面有些 ACTION_POINTER_2_DOWN 、 ACTION_POINTER_3_DOWN 这样的...
  • android ADB 模拟手机点击事件

    万次阅读 2016-08-29 11:40:58
    手机连接到ADB 输入命令 adb shell getevent -p 显示 从这里可以知道每一个 /dev/input/event3: 0003 0035 00000161 ...然后手机就可以接受手机屏幕上的点击事件的位置(不过是16进制) /dev/input/event3: 00
  • Android Instrumentation模拟鼠标点击事件

    千次阅读 2012-11-08 15:50:28
    看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获。下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumentation发送键盘鼠标事件:...
  • 模拟事件全部是通过input命令来实现的,首先看一下input命令的使用:usage: input ...input text input keyevent input tap input swipe 1. keyevent指的是Android对应的keycode,比如home键的keycode=3,back键的...
  • Android模拟MotionEvent事件

    千次阅读 2012-07-23 15:26:47
    模拟一次点击: mImageView.onTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 10f, 10f, 0)); mImageView.onTouchEvent(MotionEvent.obtain...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 537
精华内容 214
关键字:

android模拟点击事件