Android 第三方应用监听home键
16lz
2021-01-23
如果想要在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键将不会回到桌面。
更多相关文章
- TextView 加链接所有方法
- Android滑动手势侦测方法介绍
- Activity背景色为透明的2种方法
- 无法安装ADT(无法访问https://dl-ssl.google.com/android/eclipse
- android 几种发送短信的方法
- 【Android】一种提高Android应用进程存活率新方法
- 更改Android AVD模拟器创建路径位置的方法