android5.0以上对于APP_SWITCH和HOME键的处理
2016-05-17 15:06
337 查看
在android5.0项目开发遇到需要捕获HOME键的情况,经过查找,实现函数如下:
在framework/base/services/core/java/com/android/server/policy/PhoneWindowManager.java中添加如下函数:
private boolean getTopStackActivity(String fullClassName){
ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
RunningTaskInfo info = am.getRunningTasks(1).get(0);
if(info == null || info.topActivity == null){
Log.e(TAG, "Top activity is null, error");
return false;
}
if(fullClassName.equals(info.topActivity.getClassName())){
Log.d(TAG, "Top Activity:"+info.topActivity.getClassName());
return true;
}
return false;
}
HOME键处理:
在 interceptKeyBeforeDispatching函数的if(keyCode == KeyEvent.KEYCODE_HOME)中添加如上函数即可在应用层捕获HOME键。
APP_SWITCH键处理:
在interceptKeyBeforeDispatching函数的else if(keyCode == KeyEvent.KEYCODE_MENU)下的if(keyCode == KeyEvent.KEYCODE_APP_SWITCH)中添加如上函数即可在应用层捕获APP_SWITCH键。
在framework/base/services/core/java/com/android/server/policy/PhoneWindowManager.java中添加如下函数:
private boolean getTopStackActivity(String fullClassName){
ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
RunningTaskInfo info = am.getRunningTasks(1).get(0);
if(info == null || info.topActivity == null){
Log.e(TAG, "Top activity is null, error");
return false;
}
if(fullClassName.equals(info.topActivity.getClassName())){
Log.d(TAG, "Top Activity:"+info.topActivity.getClassName());
return true;
}
return false;
}
HOME键处理:
在 interceptKeyBeforeDispatching函数的if(keyCode == KeyEvent.KEYCODE_HOME)中添加如上函数即可在应用层捕获HOME键。
APP_SWITCH键处理:
在interceptKeyBeforeDispatching函数的else if(keyCode == KeyEvent.KEYCODE_MENU)下的if(keyCode == KeyEvent.KEYCODE_APP_SWITCH)中添加如上函数即可在应用层捕获APP_SWITCH键。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories