在Android 4.0系统源码中,状态栏上的各个按钮在xml配置文件里加入了这样的一个属性:systemui:keyCode=“xx",比如

返回键:systemui:keyCode=“4"

Home键:systemui:keyCode=“3"

音量减键:systemui:keyCode=“25"

音量加键:systemui:keyCode=“24" 等等。


系统对这些键的处理在:framework/base/services/java/com/android/server/vm/WindowManagerService.java里进行处理:

public boolean injectKeyEvent(KeyEvent ke,boolean sync){

/**

.........

*/

调用了InputManager的injectInputEvent()方法。

}


我们如果想在应用程序里实现一个按钮点击长生返回键的作用,就可以获取利用下面的方法来进行:

private IWindowManager mWinManager = null;


private void sendKeyEvent(int keycode) {
long now;
if (mWinManager == null) {
mWinManager = IWindowManager.Stub.asInterface(ServiceManager
. getService(Context.WINDOW_SERVICE));
}

now = SystemClock.uptimeMillis();

KeyEvent event = new KeyEvent(now, now, KeyEvent.ACTION_DOWN,keycode, 0);
try {
mWinManager.injectKeyEvent(event, false);
} catch (RemoteException e) {
Log.e(TAG, "sendKey remote connect failed", e);
}

event = new KeyEvent(now, now, KeyEvent.ACTION_UP, keycode, 0);
try {
mWinManager.injectKeyEvent(event, true);
} catch (RemoteException e) {
Log.e(TAG, "sendKey remote connect failed", e);

}

}


直接调用sendKeyEvent即可。




更多相关文章

  1. android webview设置缩放按钮时候无法显示问题
  2. Android(安卓)获取按钮Button的高度、宽度、坐标
  3. ToggleButton的学习与使用
  4. 新浪微博Android客户端学习记录三:完成登录界面和授权界面
  5. 设备的search按钮调用自己程序的search模块
  6. Android使用代码实现左右半圆的按钮背景
  7. android的layout
  8. android-boostrap
  9. android UI编程

随机推荐

  1. 利用html5 canvas实现纯前端上传图片的裁
  2. 【CSON原创】HTML5实现3D迷宫
  3. 在href元素中使用标记<c:out [duplicate]
  4. Tomcat中对Context应用
  5. css职位:相对;坚持到底
  6. 在一些页面中使用P和L定向生成PDF文档。
  7. 安装的Moodle字体在其他浏览器中不起作用
  8. TextView显示html样式的文字
  9. 在HTML / PHP联系表单上出现404/405错误(
  10. 急死我了!我以前用DREAMWEAVER编写的HTML