比如自定义实现power键的额外功能,或者其他自定义键值的按键功能,也有在这里发送全局广播给应用层app监听后实现功能。这些操作没有问题,但是请额外注意这个变量的 int result; 的返回值,因为它关系到按键事件是否分发到应用层。 应用层的按键事件消费 ViewRootImpl内部的InputStage: InputStage用于实现责任链中某个阶段的...
安卓Android KeyCode/keyevent常用键码表 键名描述键值 电话键 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOME 按键Home 3 KEYCODE_MENU 菜单键 82 KEYCODE_BACK 返回键 4 KEYCODE_SEARCH 搜索键 84 KEYCODE_CAMERA 拍照键 27 KEYCODE_FOCUS 拍照对焦键 80 KEYCODE_POWER 电源键 26 KEYCODE_...
####1、interceptPowerKeyDown interceptPowerKeyDown用于处理按下Power键(还未松手释放)对应的事件。 private void interceptPowerKeyDown(KeyEvent event, boolean interactive) { // Hold a wake lock until the power key is released. // mPowerKeyWakeLock为PARTIAL_WAKE_LOCK级别的锁 if (!mPowerKeyWakeLock...
带着这个问题,开始Keyguard的探索之旅。第一次接触到Keyguard的时候,我不知道如何入手去看这块代码,我记得当时是当Power按下后,屏幕点亮时会显示出Keyguard。上次是从这个角度去了解Keyguard的,多少有点收获,也为再次看Keyguard模块打下点基础吧。之所以说起这个事情,是想告诫自己,求知不要心急,慢慢来不见得是坏事,市...
nbsp; if (keyCode == KeyEvent.KEYCODE_POWER)...
Android4.x在Framework的PhoneWindowManager对Power(KeyEvent.KEYCODE_POWER)和Home(KeyEvent.KEYCODE_HOME)键做了处理,不会把这些键传送上层应用程序。如需要把这些键发送给Activity和Service,需要在PhoneWindowManager处理这些键时“发送一个广播出去,然后在应用程序接收到广播后做处理”。
power键按下在interceptPowerKeyDown()执行,松开的操作在interceptPowerKeyUp()中执行interceptPowerKeyDown()方法中会调用GestureLauncherService.java的interceptPowerKeyDown()方法 关键代码: // The camera gesture will be detected by GestureLauncherService.privatebooleanhandleCameraGesture(KeyEventevent,booleaninteract...
双击power键大概流程 PhoneWindowManager.java类是 处理各种 power 键流程的地方,路径如下: frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java 关键代码: case KeyEvent.KEYCODE_POWER: {EventLogTags.writeInterceptPower(KeyEvent.actionToString(event.getAction()),mPowerKeyHandled...
boolean onKeyLongPress(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_POWER)...
PhoneWindowManager.java 类是 处理各种 power 键流程的地方, caseKeyEvent.KEYCODE_POWER:if(down){interceptPowerKeyDown(event,interactive);}else{interceptPowerKeyUp(event,interactive,canceled);} power键按下在interceptPowerKeyDown()执行,松开的操作在interceptPowerKeyUp()中执行 ...