Android 如何让app自行处理power key
来源:互联网 发布:python字符串转换json 编辑:程序博客网 时间:2024/06/05 06:29
前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
正文
Power key 通常都是由 framework 自行的
app 无法拿到这个 key 值
如果想让某个 app 自行处理 power key
应该要怎么做呢?
1: 修改 phoneWindowManager.java 的 interceptKeyBeforeQueueing 方法,在 reference line 后加入下面这段代码
case KeyEvent.KEYCODE_POWER: { //reference line
result &= ~ACTION_PASS_TO_USER; //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 ..");
}
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
2: 同样在此分支内, 找到 else 语句段, 并找到如下位置加入
if (interceptPowerKeyUp(canceled || mPendingPowerKeyUpCanceled)) { //参考行
if(!((result & ACTION_PASS_TO_USER) == ACTION_PASS_TO_USER)){ //加入行
result = (result & ~ACTION_WAKE_UP) | ACTION_GO_TO_SLEEP; //原有代码
} //加入行
}
if(!((result & ACTION_PASS_TO_USER) == ACTION_PASS_TO_USER)){ //加入行
result = (result & ~ACTION_WAKE_UP) | ACTION_GO_TO_SLEEP; //原有代码
} //加入行
}
注意: 以上蓝色背景部分的内容需要替换为您预期要处理 power key 的 app 对应的 package name.
0 0
- Android 如何让 app 自行处理 power key M
- Android 如何让app自行处理power key
- Android 如何让app自行处理power key
- Android 如何让 app 自行处理 home key
- Power key处理流程图
- Android让ListView自行滚动
- Android Power Key Message
- [Android]长按电源键(Power Key)的处理
- Android开发中 如何处理power键
- android long power key流程
- 分析Power key的处理流程
- 分析Power key的处理流程
- 分析Power key的处理流程
- 分析Power key的处理流程
- 分析Power key的处理流程
- 如何让android app适应不同分辨率
- Android 如何让你的App赚钱?
- Android如何让APP进程常驻内存?
- 输入和获取字符的使用(putchar,getchar,puts,gets,fputc,fgetc,fscanf,fprintf)
- 自动化测试
- Xcode5中关闭ARC的方法
- Atlas源码剖析(四)
- EF6 SQL Logging – Part 1: Simple Logging
- Android 如何让app自行处理power key
- LLDB调试命令初探
- HOW TO MONITOR LSI RAID CONTROLLER IN CENTOS
- 解决升级到ADT22.6后不能启动/新建AVD(模拟器)的办法
- 声明函数需要返回,而没做此动作导致报错【注意细节】
- 各种考试
- 趣味题
- Gartner:2013年全球存储市场疲软依旧
- 前台技术--dhtrmlxTree使用