解决方案 »

  1.   

    调用系统摄像头的方法参照http://blog.sina.com.cn/s/blog_75e063c101011ytd.html
      

  2.   

    之前我也研究过以下这个问题。
    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
      

  3.   

    解决了,通过看底层源码,只有在设置WindowManager.LayoutParams.TYPE_KEYGUARD或者WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG时,系统值返回false,才可以达到目的,所以我把它改成第二项,虽然不知道原因,但是是成功了的