Android 高通4.4.4 源码 如何屏蔽Home键_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android 高通4.4.4 源码 如何屏蔽Home键

Android 高通4.4.4 源码 如何屏蔽Home键

 2014/12/2 19:09:12  sphere  程序员俱乐部  我要评论(0)
  • 摘要:高通4.4.4源码中如果要屏蔽home键使之不响应,在应用层修改是没用的。鉴于来电show出界面时,点击home键没有响应,我们可以打log看系统如何处理。12-0216:28:54.634D/PhoneUtils(1113):setAudioMode()...RINGING12-0216:28:54.644D/PhoneUtils(1113):setAudioMode()nochange:MODE_RINGTONE12-0216:28:55.314I/WindowManager(928)
  • 标签:android 源码

高通4.4.4 源码中如果要屏蔽home键使之不响应,在应用层修改是没用的。

 

鉴于来电show出界面时,点击home键没有响应,我们可以打log看系统如何处理。

12-02 16:28:54.634 D/PhoneUtils( 1113): setAudioMode()...RINGING

12-02 16:28:54.644 D/PhoneUtils( 1113): setAudioMode() no change: MODE_RINGTONE

12-02 16:28:55.314 I/WindowManager(  928): Ignoring HOME; there's a ringing incoming call.

关键信息如下:

Ignoring HOME; there's a ringing incoming call.

在Source Insight 中全局搜索上述关键信息,找到名为PhoneWindowManager.java 的源文件

查看framework层代码

 

定位到名为interceptKeyBeforeDispatching 的函数

从函数名我们可以知道此函数是是在分发按键消息之前进行拦截。

 

查看对KEYCODE_HOME home键的处理 

关键代码如下

来电铃声响起时,return -1; 屏蔽home键

所以我们有屏蔽home键的需求,在这里写判断条件 return -1 做处理即可。

return -1 事件就被拦截了,就不会向上层分发了。

 

否则 响应home键 返回launcher

 

发表评论
用户名: 匿名