在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;

    }

  1. HOME键处理:

    在 interceptKeyBeforeDispatching函数的if(keyCode == KeyEvent.KEYCODE_HOME)中添加如上函数即可在应用层捕获HOME键。

  2. APP_SWITCH键处理:

    在interceptKeyBeforeDispatching函数的else if(keyCode == KeyEvent.KEYCODE_MENU)下的if(keyCode == KeyEvent.KEYCODE_APP_SWITCH)中添加如上函数即可在应用层捕获APP_SWITCH键。

更多相关文章

  1. Android为Menu添加item及响应函数
  2. android之检查service运行状态函数
  3. Android - 利用Android studio + Android Killer工具在手机未ROO
  4. Android Studio 基础 之 一键快速实现一个类的 构造函数、getter
  5. Android Studio如何提示函数用法
  6. Android Studio怎样提示函数使用方法
  7. Android NDK编程实现终端功能(调用system函数)
  8. Android Dialog的四种情况

随机推荐

  1. Unity3D实现复制文本到系统剪贴板(PC, And
  2. Android(安卓)Studio去除标题栏
  3. Android(安卓)intent.Action 参数值及对
  4. Ubuntu 配置qt5.9.1 android 开发环境(简
  5. Android获取系统拍照程序发出的广播
  6. Android(安卓)Studio2.2 配置NDK
  7. Android(安卓)按钮设置边框实例
  8. Android5.1 WebView遇坑笔记-Resources$N
  9. Handler的使用,如何使得handler处理的线程
  10. AndroidStudio3.0及其以上集成ButterKnif