当前位置: 代码迷 >> Android >> Android中调用系统摄像头的照相页面,能屏蔽home键吗
  详细解决方案

Android中调用系统摄像头的照相页面,能屏蔽home键吗

热度:101   发布时间:2016-04-28 04:18:48.0
Android中调用系统摄像头的拍照页面,能屏蔽home键吗?
我现在的项目里面,有个调用系统摄像头进行拍照的页面,但是现在要求要屏蔽home键,网上都是重写了onAttachToWindow()方法,然后设置 this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);程序运行后,就悲剧了,摄像头一片漆黑,把设置的那句代码注释掉,摄像头是正常的,可是就不能屏蔽home键了,纠结啊!PS:我的Android系统是自己人写的,可以实现屏蔽home键的功能,最大的问题就是屏蔽home键的功能和摄像头的冲突问题,求大神解惑!
------解决方案--------------------
之前我也研究过以下这个问题。
onAttachToWindow()这个方法没记错的话好像只是2.3及以下吧。
4.0以后貌似没有好用的方法屏蔽home键。
在framework下的 PhoneWindowManager.java下这个地方是home键的处理。


 @Override
public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {
    ...
    // First we always handle the home key here, so applications
    // can never break it, although if keyguard is on, we do let
    // it handle it, because that gives us the correct 5 second
    // timeout.
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        ...
    }
}

这里可以在线浏览:
https://android.googlesource.com/platform/frameworks/base/+/7d276c377ce0c56630c06a6da431a6cb9bd76d1e/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java


  相关解决方案