您的位置:首页 > 移动开发

Android 如何让 app 自行处理 power key M

2014-01-06 15:22 567 查看
前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
[b][b]CSDN
[/b]:[/b]http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof

正文

Power key 通常都是由 framework 自行的
app 无法拿到这个 key 值

1: 修改 phoneWindowManager.java 的 interceptKeyBeforeQueueing 方法,在 reference line 后加入下面这段代码

case KeyEvent.KEYCODE_POWER: { //reference line
result &= ~ACTION_PASS_TO_USER; //reference line
// add begin
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
try{
if (activityManager.getRunningTasks(1).get(0).topActivity.getPackageName().equals("your_special_package_name")){
//Please reset the special package name.
result |= ACTION_PASS_TO_USER;
Xlog.d(TAG,"detect power key in special package, pass to user!")
}
}catch(NullPointerException e){
Xlog.d(TAG,"ingore a NullPointerException ..");
}
//add end


注意: 以上黄色背景部分的内容需要替换为您预期要处理 power key 的 app 对应的 package name.

注意: 以上黄色背景部分的内容需要替换为您预期要处理 power key 的 app 对应的 package name .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: