instrumentation模拟很多activity的操作
android.app.Instrumentation好像原来是用来做测试的,
可以用来模拟很多activity的操作
主要代码如下
如果在文本框中输入24,或者25
点击按钮就能模拟音量加减键
键值可以查看android.view.KeyEvent
- package com.qefee.testinstrumentation;
- import android.app.Activity;
- import android.app.Instrumentation;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- TextView tv_showkey;
- Button btn_submit;
- EditText et_keycode;
- Instrumentation instrumentation;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- instrumentation = new Instrumentation();
- getViews();
- // 通过按钮点击,模拟事件
- btn_submit.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- et_keycode.clearFocus();
- btn_submit.requestFocus();
- String keycodeStr = et_keycode.getText().toString();
- if (keycodeStr == null || "".equals(keycodeStr)) {
- Toast.makeText(MainActivity.this, "please input a keycode",
- Toast.LENGTH_SHORT).show();
- return;
- }
- final int keycode = Integer.parseInt(keycodeStr);
- // 必需在线程中运行,否者报错
- Thread t = new Thread(new Runnable() {
- @Override
- public void run() {
- instrumentation.sendKeyDownUpSync(keycode);
- }
- });
- t.start();
- }
- });
- }
- /**
- *
- */
- private void getViews() {
- tv_showkey = (TextView) findViewById(R.id.tv_showcode);
- btn_submit = (Button) findViewById(R.id.btn_submit);
- et_keycode = (EditText) findViewById(R.id.et_keycode);
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- boolean onKeyDown = super.onKeyDown(keyCode, event);
- tv_showkey.setText("des = " + KeyEvent.keyCodeToString(keyCode)
- + " : code = " + keyCode);
- System.out.println(event);
- // System.out.println(event.getAction());
- // System.out.println(event.getCharacters());
- // System.out.println(event.getDeviceId());
- // System.out.println(event.getDisplayLabel());
- // System.out.println(event.getDownTime());
- // System.out.println(event.getEventTime());
- // System.out.println(event.getFlags());
- // System.out.println(event.getKeyCode());
- //
- // System.out.println(KeyEvent.keyCodeToString(keyCode));
- return onKeyDown;
- }
- }
instrumentation模拟很多activity的操作相关推荐
- selenium模拟鼠标和键盘操作的基本方法
前言 前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是 ...
- 计算机应用操作题word,计算机应用基础网考模拟练习题Word部分操作题
计算机应用基础网考模拟练习题Word部分操作题 1.打开当前试题目录中的TEST1.DOC文件,并完成下面操作: (1)在" 基于Windows95/98"后添加"操作系 ...
- 开启灯光就是近光吗_科目三考前必看!夜间灯光语音模拟+超全项目操作
驾考复考在即,你准备好了吗?跟着元贝驾考小编一起来看看,科目三夜间灯光语音模拟+超全项目操作! 上车准备 下面将进行模拟夜间行驶灯光的考试,请在5秒内做出相应的灯光操作 1.语音提示:请开启前照灯 [ ...
- JAVA编写的使用Socket模拟Http的GET操作
JAVA编写的使用Socket模拟Http的GET操作,看后就很容易理解Web浏览器的原理了. import java.io.BufferedReader; import java.io.InputS ...
- .net中模拟键盘和鼠标操作
周银辉 其实SendKeys类提供的方法蛮好用的,可惜的是WPF中不能用了,说是WPF的消息循环方式改成了Dispatcher,所以直接调用System.Windows.Forms.SendKeys. ...
- php 模拟鼠标点击,Python全局模拟鼠标点击操作(以至善网无聊评价点击作为案例)...
Python全局模拟鼠标点击操作(以至善网无聊评价点击作为案例) 环境 python3 依赖 PyAutoGUI 简介 PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动 ...
- 控制台模拟鼠标、键盘操作
控制台模拟鼠标.键盘操作 模拟鼠标.键盘操作,能让命令行顿然强大,想想,制作批处理版屏幕键盘等都不在话下(已制作过,效果很不错).虽然这也跟CUI无关.本教程教会你如何让命令行模拟鼠标.键盘的操作. ...
- 使用Instrumentation模拟点击屏幕
1.使用前需要申明权限 <uses-permission android:name="android.permission.INJECT_EVENTS" /> 2.使用 ...
- Python全局模拟鼠标点击操作(以至善网无聊评价点击作为案例)
Python全局模拟鼠标点击操作(以至善网无聊评价点击作为案例) 环境 python3 依赖 PyAutoGUI 简介 PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动 ...
最新文章
- Makefile理解
- protobuf-2.6.1生成java文件
- SpringBoot 使用(三): 配置文件详解
- 7-CPU Reset
- Scala-Spark digamma stackoverflow问题
- 1. 栈和队列的数组实现
- 简单版:带干扰线的图形验证码生成
- 常用系统函数oracle
- Nmap流量特征修改(NTA、IDS、IPS、流量审计)
- 计算机网络学习笔记(3. 计算机网络结构)
- 镜头的分类及选购指南
- SharePoint 2013 禁用搜索服务
- 2020年物联网平台调研报告
- linux 下修复坏u盘启动不了怎么办,U盘打不开并不是坏了, 用这两个命令, 轻松修复里面的文件...
- Win系统 - Windows10 系统恢复语言栏位置的方法(二)
- 国际能源署: 分散式系统是穷乡能源普及最具经济效益的解方
- dell服务器型号t310,Dell T110/R210/T310/R310服务器 For Windows驱动程序
- android 方向传感器,10.11 传感器专题(2)——方向传感器
- 服务器要删除文件访问被拒绝,删除文件提示:文件夹访问被拒绝 需要来自administrator权限执行操作...
- GVRP-LNP-VCMP讲解
热门文章
- python将文本中的数据处理成图像(matplotlib)
- floatvalue 重写_Java Number floatValue()方法与示例
- 散列碰撞_散列中的碰撞和碰撞解决技术
- HDFC的完整形式是什么?
- 周五怎么表示 mysql_完美起航-MySQL找每个月最后一个星期五--函数定义与使用
- 线性表----链式表
- Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
- android文本复制自定义剪切板,android 剪切板-文本复制、粘贴
- django和mysql写注册_Django电商项目---完成注册页面和用户登录
- 校门外的树——树状数组+区间修改