android 5.1 系统中
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java:
public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {
<span style="white-space:pre"> </span>//检查当前是否锁屏, 可以添加getTopApp()判断当前activity 来屏蔽 2398 final boolean keyguardOn = keyguardOn();
添加新的方法:
//获取当前activity 名称
<span style="font-family: Arial, Helvetica, sans-serif;">private String getTopApp() {</span>
ActivityManager mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
ActivityManager.RunningTaskInfo taskInfo = RunningTask.get(0);
return taskInfo.topActivity.getClassName().toString();
}
有些项目中无MENU key, 而是recent apps , keycode 不变, 仍为82