android 7.0 打开闪光灯失效原因

来源:互联网 发布:景德镇房管局交易数据 编辑:程序博客网 时间:2024/05/21 03:57

注意了。我说的是单独打开。


7.0以前打开闪光灯只要权限够了。直接调用

  private void open2() {        try {            Log.e("~~~~~", "open2: ```````````````````````````````````````````````````````````" );//            mCamera = Camera.open(cameraPosition);            Camera.Parameters parameters = mCamera.getParameters();            parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);            mCamera.setParameters(parameters);            mCamera.startPreview();        } catch (Exception e) {            e.printStackTrace();        }    }
这样就完事儿了。


但是!7.0就不能这样。直接调用这个方法连log都不会有太多的信息给你看。也不会报错。

最后经过一轮调试。发现7.0如果要打开闪光灯就必须要实现SurfaceHolder.Callback 接口和需要SurfaceVIew

这样才能打开闪光灯。也就是要调用摄像头预览。才能打开闪光灯。

但是如果要单独打开闪光灯,又不希望界面有SurfaceView的话。把控件设置为1dp就可以了。源码就不附送了。百度大把的。