Android 银河s3上的相机闪光灯

Android 银河s3上的相机闪光灯,android,android-camera,surfaceview,flashlight,Android,Android Camera,Surfaceview,Flashlight,我正在使用以下代码打开相机手电筒 public Flashlight(SurfaceView preview, Context context){ this.preview = preview; this.context = context; mHolder = preview.getHolder(); mHolder.addCallback(this); mCamera = Camera.open(); cameraOpened = true;

我正在使用以下代码打开相机手电筒

public Flashlight(SurfaceView preview, Context context){
    this.preview = preview;
    this.context = context;
    mHolder = preview.getHolder();
    mHolder.addCallback(this);
    mCamera = Camera.open();
    cameraOpened = true;
    try {
        mCamera.setPreviewDisplay(mHolder);
    }catch (Exception e){
        e.printStackTrace();
    }
    params = mCamera.getParameters();
    mCamera.startPreview();
}
private void turnOnFlashlight(){
    params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    mCamera.setParameters(params);
}
private void turnOffFlashlight(){
    params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
    mCamera.setParameters(params);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
    mHolder = holder;
    try {
        mCamera.setPreviewDisplay(mHolder);
    }catch(Exception e){
        e.printStackTrace();
    }
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
    mHolder = null;
}
它使用surface view,在许多手机上都能很好地工作,但我无法让它在galaxy S3上工作。你经历过类似的问题吗?有没有办法让它在S3上工作


感谢转发

为什么手电筒需要表面视图?您只需使用flash_MODE_TORCH打开flash即可。surface view是适用于大多数设备的更好的解决方案。闪光模式有很大的问题,这里是参考