[摘]简单使用使用Instrumentation

adb 3年前 (2018) 125la.com站长
35 0 0
站长公众号


在以前我们写过《adb shell input 各参数的使用》,这次我们不需要adb,而是要在代码是直接使用。

Instrumentation本身是Android用来做测试的工具,可以通过它监测系统与应用程序之间的交互。详情可以参考官方文档Android测试。我们这里只关注怎么使用Instrumentation产生发送按键或者触屏事件。

发送按键:

Instrumentation mInst = new Instrumentation();  
mInst.sendKeyDownUpSync(KeyEvent.KEYCODE_CAMERA);  

sendKeyDownUpSync()从名字上就能看出,这是同步发送一个按键按下和弹起事件。

发送触屏事件:

Instrumentation mInst = new Instrumentation();  
mInst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),  
    SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0);
mInst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),  
    SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0);

同样,sendPointerSync()是同步发送发送触摸事件。

与Shell工具一样,还有类似sendStringSync()发送文本,sendTrackballEventSync()发送轨迹球事件等方法。

注意,使用上面的方法,在AndroidManifast.xml中申明如下权限:

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

遗憾的是android.permission.INJECT_EVENTS是一个System权限,折腾起来有点麻烦,可以参考这里

本文摘抄于《Android模拟产生事件》,感谢原作者的分享

站长公众号
版权声明:125la.com站长 发表于 2018年6月19日 下午7:55 。
转载请注明: [摘]简单使用使用Instrumentation | 125啦读书导航

相关文章

站长公众号

暂无评论

暂无评论...