android 实现模拟按键方法一

通过Runtime实现,代码如下:

try
{
String keyCommand = "input keyevent " + KeyEvent.KEYCODE_MENU;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(keyCommand);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

这个代码是模拟菜单键,模拟其它按键只需将KeyEvent.KEYCODE_MENU替换成其它键值。

缺点:反应速度较慢

以下附带各KeyCode值:

KEYCODE_UNKNOWN=0; 

KEYCODE_SOFT_LEFT=1; 

KEYCODE_SOFT_RIGHT=2; 

KEYCODE_HOME=3; 

KEYCODE_BACK=4; 

KEYCODE_CALL=5; 

KEYCODE_ENDCALL=6; 

KEYCODE_0=7; 

KEYCODE_1=8; 

KEYCODE_2=9; 

KEYCODE_3=10; 

KEYCODE_4=11; 

KEYCODE_5=12; 

KEYCODE_6=13; 

KEYCODE_7=14; 

KEYCODE_8=15; 

KEYCODE_9=16; 

KEYCODE_STAR=17; 

KEYCODE_POUND=18; 

KEYCODE_DPAD_UP=19; 

KEYCODE_DPAD_DOWN=20; 

KEYCODE_DPAD_LEFT=21; 

KEYCODE_DPAD_RIGHT=22; 

KEYCODE_DPAD_CENTER=23; 

KEYCODE_VOLUME_UP=24; 

KEYCODE_VOLUME_DOWN=25; 

KEYCODE_POWER=26; 

KEYCODE_CAMERA=27; 

KEYCODE_CLEAR=28; 

KEYCODE_A=29; 

KEYCODE_B=30; 

KEYCODE_C=31; 

KEYCODE_D=32; 

KEYCODE_E=33; 

KEYCODE_F=34; 

KEYCODE_G=35; 

KEYCODE_H=36; 

KEYCODE_I=37; 

KEYCODE_J=38; 

KEYCODE_K=39; 

KEYCODE_L=40; 

KEYCODE_M=41; 

KEYCODE_N=42; 

KEYCODE_O=43; 

KEYCODE_P=44; 

KEYCODE_Q=45; 

KEYCODE_R=46; 

KEYCODE_S=47; 

KEYCODE_T=48; 

KEYCODE_U=49; 

KEYCODE_V=50; 

KEYCODE_W=51; 

KEYCODE_X=52; 

KEYCODE_Y=53; 

KEYCODE_Z=54; 

KEYCODE_COMMA=55; 

KEYCODE_PERIOD=56; 

KEYCODE_ALT_LEFT=57; 

KEYCODE_ALT_RIGHT=58; 

KEYCODE_SHIFT_LEFT=59; 

KEYCODE_SHIFT_RIGHT=60; 

KEYCODE_TAB=61; 

KEYCODE_SPACE=62; 

KEYCODE_SYM=63; 

KEYCODE_EXPLORER=64; 

KEYCODE_ENVELOPE=65; 

KEYCODE_ENTER=66; 

KEYCODE_DEL=67; 

KEYCODE_GRAVE=68; 

KEYCODE_MINUS=69; 

KEYCODE_EQUALS=70; 

KEYCODE_LEFT_BRACKET=71; 

KEYCODE_RIGHT_BRACKET=72; 

KEYCODE_BACKSLASH=73; 

KEYCODE_SEMICOLON=74; 

KEYCODE_APOSTROPHE=75; 

KEYCODE_SLASH=76; 

KEYCODE_AT=77; 

KEYCODE_NUM=78; 

KEYCODE_HEADSETHOOK=79; 

KEYCODE_FOCUS=80;//*Camera*focus 

KEYCODE_PLUS=81; 

KEYCODE_MENU=82; 

KEYCODE_NOTIFICATION=83; 

KEYCODE_SEARCH=84; 

KEYCODE_MEDIA_PLAY_PAUSE=85; 

KEYCODE_MEDIA_STOP=86; 

KEYCODE_MEDIA_NEXT=87; 

KEYCODE_MEDIA_PREVIOUS=88; 

KEYCODE_MEDIA_REWIND=89; 

KEYCODE_MEDIA_FAST_FORWARD=90; 

KEYCODE_MUTE=91;

android 实现模拟按键的更多相关文章

  1. Android(Linux)模拟按键、触摸屏等事件

    前提: 在我们应用程序或者在写Android自己主动化測试时候经常会须要模拟实体按键,来给我们做測试用.这也是我要整理的目的. 基本的涉及的是Linux Input Event事件. 下面的样例基于A ...

  2. Android随笔之——模拟按键操作的几种方式

    前几天转过一篇Android上模拟按键操作.触屏事件的博客,昨天又去找了百度.谷歌了一下,写了一点简单的测试代码,留待不时之需.有需要看之前转载的那篇博客的请看这里→_→转:Android随笔之——使 ...

  3. Android 命令行模拟按键

    /***************************************************************************** * Android 命令行模拟按键 * 说 ...

  4. android后台input命令模拟按键【转】

    本文转载自:http://www.cnblogs.com/sh1o2os/archive/2013/02/05/2893201.html 有时做开发时,我们使用的触摸屏没有虚拟按键(HOME.BACK ...

  5. android 模拟按键事件

    模拟按键事件可以提高代码的复用性,比如在一个edittext的回车事件里做的一些处理 在该edittext的另一个输入要做相同的处理时,模拟按键事件就非常方便了. 代码很简单,直接上代码: new T ...

  6. adb shell命令模拟按键/输入input使用keycode 列表详解

    在adb shell里有一个非常使用的命令,模拟按键输入,这里首先不要理解为是键盘的模拟按键,下面命令的使用和键值做一个详解. input命令格式 adb shell input keyevent & ...

  7. delphi 向其他程序发送模拟按键

    向其他程序发送模拟按键: 1.用keybd_event: varh : THandle;beginh := FindWindow('TFitForm', '1stOpt - [Untitled1]') ...

  8. Android隐藏虚拟按键,关闭开机动画、开机声音

    /*********************************************************************** * Android隐藏虚拟按键,关闭开机动画.开机声音 ...

  9. C#获取窗口,模拟按键操作

    C#获取窗口,模拟按键操作,实现计算器模拟操作.首先引用. using System.Runtime.InteropServices; 使用DllImport引入两个函数: // Get a hand ...

随机推荐

  1. 在Hadoop分布式文件系统的索引和搜索

    FROM:http://www.drdobbs.com/parallel/indexing-and-searching-on-a-hadoop-distr/226300241?pgno=3 在今天的信 ...

  2. UITextField监听文字输入事件

    [textField addTarget:self action:@selector(textFieldDidChange:)forControlEvents:UIControlEventEditin ...

  3. Extjs布局——layout: 'card'

    先看下此布局的特性: 下面演示一个使用layout: 'card'布局的示例(从API copy过来的)——导航面板(注:导航面板切换下一个或上一个面板实际是导航面板的布局--layout调用指定的方 ...

  4. 纯CSS制作二级导航

    一.问题描述 做一个类似校园网首页,主要是导航栏的设置,ul默认纵向排列,如何横向排列,同时去掉圆点. 二.问题解决 2.1 先写导航条 用两个ul嵌套,一个ul是横向导航条,另一个是每个小项目下连一 ...

  5. [转载]c# 多线程一个带多个参数的方法

    比如我要线程一个private void subPing(int pre,int end) 我在Thread t=之后应该如何写 用匿名委托吧!那么简单为什么要这样写!t = new Thread(d ...

  6. 三年PS经验

  7. 深入理解SQL注入绕过WAF与过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  8. 谈谈怎么实现Oracle数据库分区表

    谈谈怎么实现Oracle数据库分区表 数据库的读写分离 SQLSERVER性能监控级别步骤 Oracle索引问题诊断与优化(1)

  9. Flume学习——Flume的架构

    Flume有三个组件:Source.Channel 和 Sink.在源码中对应同名的三个接口. When a Flume source receives an event, it stores it ...

  10. http://jingyan.baidu.com/article/a3761b2b66fe141577f9aa51.html

    http://jingyan.baidu.com/article/a3761b2b66fe141577f9aa51.html