UiDeviceAPI

一、UiDevice介绍

1.UiDevice代表设备状态,为单例模式。UiDevice的功能包括:

获取设备信息:屏幕分辨率,旋转状态,亮灭屏状态等

操作:案件,坐标操作,滑动,拖拽,灭屏唤醒屏幕,截图等

监听器功能

2.UiDevice写法有三种,推荐第三种方式,前二种可能会引起某些问题而导致无法运行:

2.1:UiDevice.getInstance();

2.2:getUiDevice();

2.3:Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();

UiDevice uiDevice = UiDevice.getInstance(instrumentation);

二、API使用

1. 按键相关的API

pressBack():模拟短按返回back键

pressEnter():模拟短按回车键

pressDelete():模拟短按删除delete按键

pressHome():模拟短按HOME键

PressMenu():模拟短按menu键

pressRecentApps():模拟断案最近使用程序

pressSearch():模拟短按搜索键

pressKeyCode(int keycode,int metaState):模拟短按键盘代码keycode

pressKeyCode(int keyCode):模拟短按键盘代码keycode

KEYCODE,键盘映射码,具体见链接:KeyCode

KeyEvent,为按键事件,具体见链接:Kevevent

metaState为META key的状态。META key是辅助功能键,即ALT、SHIFT、CAPS_LOCK。

metaState有四种状态,分别如下:

2.获取坐标与坐标点击相关API

click(int x,int y):使用坐标点击屏幕

getDisplayHeight():返回值为int,获取屏幕高度

getDisplayWidth():返回值为int,获取屏幕宽度

getDisplaySizeDp():返回值为Point,获取显示尺寸返回大小(设备独立像素,屏幕旋转返回的显示大小调整)DP:设备独立像素,例如,320像素显示到640像素上要拉升一倍

3.拖拽与滑动相关API

drag(int startX,int startY,int endX,int endY,int steps):拖动对象从一个坐标拖拽到另一个坐标

swipe(Point[] segments,int segmentSteps):在点阵列中滑动,5ms一步

swipe(int startX,int startY,int endX,int endY,int steps):通过坐标滑动屏幕

4.旋转屏幕API

setOrinentationLeft():通过禁用传感器,然后模拟设备向左转,并且固定位置

setOrientationNatural():通过禁用传感器,然后模拟设备转到其自然默认方向,并且固定位置

setOrienttationRight():通过禁用传感器,然后模拟设备向右转,并且固定位置

unfreezeRotation():重新启用传感器和允许物理旋转

isNaturalOrientation():检测设置是否处于默认旋转状态

getDisplayRotation():返回值为int,返回当前的显示旋转,0度,90度,180度,270度,值分别为:0、1、2、3.

freezeRotation():禁用传感器和冻结装置物理旋转在其当前旋转状态

5.灭屏与唤醒屏幕API

wakeUp():模拟按电源键,如果屏幕是唤醒的没有任何作用

sleep():模拟按电源键,如果屏幕已经是关闭的则没有任何作用

isScreenOn():检查屏幕是否亮屏

6.截图与等待空闲API

takeScreenshot(File storePath):把当前窗口截图并将其存储为png默认1.0f的规模(原尺寸)和90%质量,参数为file类的文件路径

takeScreenshot(File storePath,float scale,int quality):把当前窗口截图为png格式图片

参数:

storePath:存储路径,必须为png格式

Scale:缩放比例,1.0为原图

Quality:图片压缩质量,范围为0-100

waitForIdle(lonog timeout):自定义超时等待当前应用处于空闲状态

waitForIdle():等待当前应用处于空闲状态,默认等待10s

waitForWindowUpdate(String packageName,long timeout):等待窗口内容更新事件的发生

7.获取包名&开启通知栏&快速设置&获取布局文件相关API

getCurrentPackageName():获取当前界面的包名

dumpWindowHierarchy(String fileName):获取当前界面的布局文件,保存在/data/local/tmp/目录下

openNotification():打开通知栏

openQuickSettings():打开快速设置

本文转载整理自:

http://www.voidcn.com/article/p-thkgiezz-ov.html

你可能感兴趣的:(UiDeviceAPI)