Android app:如何让 App 拿到Power key 值

 

一、Power key 通常都是由 framework 自行的 处理的, app 无法拿到这个 key 值的。

二、要想获取POWER键,需要修改framework了。              frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java函数,PhoneWindowManager主要用于实现各种实体或虚拟按键处理,interceptKeyBeforeQueueing把case KeyEvent.KEYCODE_POWER部分做如下修改,com.example.keyeventdemo是你需要获取power事件app的包名:

case KeyEvent.KEYCODE_POWER: {   Log.d(TAG,"detect power key in special package, pass to user!  "+KeyEvent.KEYCODE_POWER);  result &= ~ACTION_PASS_TO_USER;       ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);     try{      if (activityManager.getRunningTasks(1).get(0).topActivity.getPackageName().equals("com.example.keyeventdemo")){         //Please reset the special package name.        result |= ACTION_PASS_TO_USER;         Log.d(TAG,"detect power key in special package, pass to user!");       }     }catch(NullPointerException e){      Log.d(TAG,"ingore a NullPointerException .."); } return 1;}

Android app:如何让 App 拿到Power key 值_第1张图片

三、实际测试ok,按下power键没有灭屏幕,app获取到该事件。Android app:如何让 App 拿到Power key 值_第2张图片

四、app测试代码

Android app:如何让 App 拿到Power key 值_第3张图片

 

更多相关文章

  1. Android 平台上拍照/录像,图片/视频选择,编辑和压缩的一站式解决方
  2. ndroid中的自动测试这里结合Music的测试程序,分析一下Android测试
  3. Android Wear 交互表面设计及Android 双击事件监测实现
  4. Android Webview upload 图片上传
  5. Android自动测试之MonkeyRunner之MonkeyDevice
  6. Android图片圆角转换 RoundedImageView开源项目 小记
  7. Android UI开发第二十二篇――android 瀑布流图片实现
  8. Android 绘制一个Loading动画__向图片中缓慢填充颜色,从而形成动

随机推荐

  1. Android 探究 LayoutInflater setFactory
  2. Android 线程池管理工具类
  3. Android回调事件传播-android学习之旅(四
  4. TextView设置行间距 和 字间距
  5. android之创建快捷方式
  6. android 处理http例子
  7. Android(安卓)FrameWork——StatusBar
  8. Android依赖管理与私服搭建
  9. android之activity中onSaveInstanceState
  10. android 图片全屏