码迷,mamicode.com
首页 > Windows程序 > 详细

【UiAutomator学习笔记】2. UiDevice API 详细介绍(1/2)

时间:2015-03-31 06:27:36      阅读:760      评论:0      收藏:0      [点我收藏+]

标签:

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(); //会抛出空指针异常!!!!!!
        }

按键与KeyCode使用

手机常见按键

  1. HOME
  2. MENU
  3. BACK
  4. VOLUME_UP
  5. VOLUME_DOWN
  6. RECENTAPPS
  7. POWER
  8. 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 键盘映射码

  1. KeyEvent:里面的常量保存所有的键盘映射码
  2. 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
}

【UiAutomator学习笔记】2. UiDevice API 详细介绍(1/2)

标签:

原文地址:http://www.cnblogs.com/WangKangReg/p/4379663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!