如果想要在Android中某个第三方应用中屏蔽Home键,而且此应用没有源码时,此文章可能会给你一点思路。

Android 的按键处理在PhoneWindowManager.java中 ,路径:\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java。

可以找到该类中有interceptKeyBeforeDispatching方法,当你按下按键时,按键事件被底层该方法interceptKeyBeforeDispatching获取到,以Home键为例,在包名为com.nzr.example应用中屏蔽Home键。

代码如下:

public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {        final boolean keyguardOn = keyguardOn();        final int keyCode = event.getKeyCode();        final int repeatCount = event.getRepeatCount();        final int metaState = event.getMetaState();        final int flags = event.getFlags();        final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;        final boolean canceled = event.isCanceled();                if (keyCode == KeyEvent.KEYCODE_HOME) {            try {if (ActivityManagerNative.getDefault().getTasks(1, 0,null).get(0).baseActivity.getPackageName().equals("com.nzr.example")) {return 0;}} catch (RemoteException e) {}}
此时,在该应用中按下Home键将不会回到桌面。

更多相关文章

  1. TextView 加链接所有方法
  2. Android滑动手势侦测方法介绍
  3. Activity背景色为透明的2种方法
  4. 无法安装ADT(无法访问https://dl-ssl.google.com/android/eclipse
  5. android 几种发送短信的方法
  6. 【Android】一种提高Android应用进程存活率新方法
  7. 更改Android AVD模拟器创建路径位置的方法

随机推荐

  1. Android(安卓)Low Memory Killer
  2. android输入法02:openwnn源码解析01—输入
  3. Android[初级教程]第一篇 Button控件和Te
  4. Android(安卓)HIDL学习(2) ---- HelloWorld
  5. 在Android里完美实现基站和WIFI定位
  6. Android(安卓)工具之hierarchyviewer
  7. Android(安卓)UI 优化 使用和 标签
  8. 百度的Android招聘面试题
  9. Android(安卓)xmlns 的作用及其自定义
  10. 【多端应用开发系列1.1.1 —— Android:使