UiDevice类介绍
- UiDevice功能
- 获取设备信息:屏幕的旋转方向,屏幕大小,分辨率,亮灭屏状态等
- 执行设备级的操作:强制设备横竖屏,按压屏幕,按键,坐标操作,滑动,拖拽,灭屏唤醒,截图
- 监听器功能,用于处理脚本被中断
- UiDevice为单例模式,获取实例的方式有两种
- UiDevice.getInstance().pressHome(); //推荐使用
- getUiDevice().pressHome(); //在其它地方封装方法被调用时,会出现空指针异常
- 例如下列代码在Demo2中定义了一个press方法
public class Demo2 extends UiAutomatorTestCase { public void press() { getUiDevice().pressMenu(); sleep(2000); getUiDevice().pressHome(); } }
- 在Demo1中进行调用Demo2的press方法
public void testDevice() { Demo2 demo2 = new Demo2(); demo2.press(); //会抛出空指针异常!!!!!! }
- 例如下列代码在Demo2中定义了一个press方法
按键与KeyCode使用
手机常见按键
- HOME
- MENU
- BACK
- VOLUME_UP
- VOLUME_DOWN
- RECENTAPPS
- POWER
- DPAD //上下左右键
按键API说明
返回值 | 方法名 | 描述 |
boolean | pressBack() | 模拟短按返回back键 |
boolean | pressDPadCenter() | 模拟按轨迹球中点按键 |
boolean | pressDPadDownr() | 模拟按轨迹球向下按键 |
boolean | pressDPadLeft() | 模拟按轨迹球向左按键 |
boolean | pressDPadRight() | 模拟按轨迹球向右按键 |
boolean | pressDPadUp() | 模拟按轨迹球向上按键 |
boolean | pressDelete() | 模拟短按delete键 |
boolean | pressEnter | 模拟短按回车键 |
boolean | pressHome() | 模拟短按HOME键 |
boolean | pressKeyCode(int keyCode, int metaState) | 模拟短按键盘代码keycode |
boolean | pressKeyCode(int keyCode) | 模拟短按键盘代码keycode |
boolean | pressMenu() | 模拟短按Menu键 |
boolean | pressRecentApps() | 模拟短按最近使用程序 |
boolean | pressSearch() | 模拟短按搜索键 |
KeyCode 键盘映射码
- KeyEvent:里面的常量保存所有的键盘映射码
- MetaKey:辅助功能键
- Alt
- Shift
- Caps_Lock
列 | 激活状态 | metaState |
base | meta_key未被激活 | 0 |
caps | shift或caps_lock被激活时 | 1 |
fn | alt被激活 | 2 |
caps_fn | alt, shift或caps_lock同时被激活时 | 3 |
实例
public void testPress() { UiDevice.getInstance().pressHome(); UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A); //输入小写字母a UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_B); //输入小写字母b UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_C); //输入小写字母c UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A, 1); //输入大写字母a UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_B, 1); //输入大写字母b UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_C, 1); //输入大写字母c }
时间: 2025-01-20 06:41:21