注意了。我说的是单独打开。
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就可以了。源码就不附送了。百度大把的。