你们真的能屏蔽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键!!!

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值