home按键默认现在没法屏蔽,但是mtk由于特殊需要,需要拦截home按键,于是添加了一套机制实现。


1:在alps\frameworks\base\core\java\android\view WindowManager.java


里面添加一个属性
/** M: Window flag: When this flag is set, the home key can be dispatched
* to the window.
* {@hide} */
public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;

2:在 alps\frameworks\base\policy\src\com\android\internal\policy\impl PhoneWindowManager.java
里面的
public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {
接口里面,添加
if (keyCode == KeyEvent.KEYCODE_HOME) {
/// M: [ALPS00054781]Dispatch the home key to the application @{
if (win != null && win.getAttrs() != null) {
final int flag = win.getAttrs().flags;
if ((flag & WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED) != 0) {
// the window wants to handle the home key, so dispatch it to it.
return 0;
}
}

通过这里来拦截home按键
3:如果需要app拦截
在 activity 的 onCreate 里面增加
getWindow().addFlags(FLAG_HOMEKEY_DISPATCHED);


即可。

更多相关文章

  1. Android虚拟按键的适配
  2. android ndk 使用第三方静态库
  3. 「横竖屏」 「分屏」 「虚拟按键」
  4. android对象池之Message
  5. Android中短信的读取与拦截
  6. Android(安卓)App监听软键盘按键的方式与改变软键盘右下角确定键
  7. android 让 webView 中的超链接失效
  8. android junit
  9. android TV盒子开发遥控器按键的监听

随机推荐

  1. Android context(Application/Activity)与
  2. 关于Android的keystore生成和查看keystor
  3. 热修复AndFix详解
  4. Android(安卓)Studio 介绍
  5. VLC Android播放器介绍
  6. android studio导入项目遇到的坑
  7. android system权限
  8. 关于在Android(安卓)Studio中使用Assets
  9. Android怎样修改系统时间?
  10. 炫酷的MaterialDesign Ripple水波纹动画