`
hyshucom
  • 浏览: 809915 次
文章分类
社区版块
存档分类
最新评论

你们真的能屏蔽Home键而不对程序产生影响吗?

 
阅读更多

最近做到一个项目,是和视频通话相关的。要求视频通话的过程中是不允许退出到后台的。

所以我们的做法是全屏+屏蔽Home,当然返回键肯定是挂断电话了。

但目前屏蔽Home键的方法无非就是钻了Android的一些漏子,把window type 设置成TYPE_KEYGUARD,TPYE_KEYGUARD_DIALOG或者是TYPE_SYSTEM_ALERT。这样确实framewok层在判断如过window type时如果是这几种确实是不会响应Home的操作的。

但是 2.2以前或许能行,2.2以后就难说了,而且得看不同的机型,厂家有没有修改源码,随便厂家怎么一改,你想在上层屏蔽Home简直是“不可能事件”

即便是这样,你不要以为2.2以前就可以高枕无忧了。

我们测试部门测出问题来了。

当你的Activity正创建的时候调完getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);这句话后,立马点Home,

很可惜,这个时候还可以点Home。为什么呢???

setType设到底层需要点时间撒,可能你这个值刚设进去,底下已经判断过去了。直接响应了Home的事件。

这下就悲剧了,你再把Activity调出来就已经无法去掉状态栏了(全屏有问题拉)。原因是这几种type的根本无法全屏显示的,这个是系统规定的。

当你锁屏时你看看状态栏有没有,有吧!因为它要给你看必要的信息,如来了短信之类的。

所以总结一下,应用层根本无法屏蔽Home键!!!

还是尽量解决退到后台导致的问题吧!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics