使用Instrumentation模拟点击屏幕

Posted potato-eater

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Instrumentation模拟点击屏幕相关的知识,希望对你有一定的参考价值。

1.使用前需要申明权限

<uses-permission android:name="android.permission.INJECT_EVENTS" />

2.使用Instrumentation模拟点击有一定限制,只能点击自己的APP,或者UID相同的APP,如果有root权限或者系统签名则可以点击所有APP

import android.app.Instrumentation;
    
public static void tap(int x,int y){
        try{
            getInst().sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),
                    SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0));    //x,y 即是事件的坐标
            getInst().sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),
                    SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0));
        }catch (Exception e){
            ToastUtils.showShort("点击出错");
        }
    }

 

技术分享图片

以上是关于使用Instrumentation模拟点击屏幕的主要内容,如果未能解决你的问题,请参考以下文章

Android代码模拟物理屏幕点击事件

Travis CI AVD上的Android Instrumentation测试失败,但在本地模拟器上工作

adb 模拟双击 快速点击屏幕

在Android 和 iOS 手机上模拟触屏点击的区别

如何在 asm 代码中正确使用 Instrumentation.retransformClasses()?

android 怎么样让按钮自动执行点击事件