Android 使用安卓4.4的nexus S和nexus 5无法使用闪光灯

Android 使用安卓4.4的nexus S和nexus 5无法使用闪光灯,android,flash,service,camera,Android,Flash,Service,Camera,在Nexus S和Nexus 5设备上启动摄像头时出现问题 在控制台中: E/SecCamera? ERR(int android::SecCamera::getPreview()):Start Camera Device Reset E/CameraHardwareSec? ERR(int android::CameraHardwareSec::previewThread()):Fail on SecCamera- >getPreview() E/SecCamera? i

在Nexus S和Nexus 5设备上启动摄像头时出现问题

在控制台中:

  E/SecCamera? ERR(int android::SecCamera::getPreview()):Start Camera Device Reset
  E/CameraHardwareSec? ERR(int android::CameraHardwareSec::previewThread()):Fail on SecCamera-   >getPreview()
  E/SecCamera? initCamera: m_cam_fd(42), m_jpeg_fd(0)
  E/SecCamera? initCamera: m_cam_fd2(43)
  E/CameraHardwareSec? preview window is NULL!
有以下几点

         Variable declaration:
             public Camera cam;
             public android.hardware.Camera.Parameters p;

         Code:
            if(cam==null){
                cam = Camera.open();
                p = cam.getParameters();
                p.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH);
                cam.setParameters(p);
                cam.startPreview();
            }
            else{
                p.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_OFF);
                cam.setParameters(p);
                cam.release();
                cam = null;
            }

     This kind of service understands and implements SensorEventListener.
这适用于具有以下软件4.4的多个设备。我该怎么办?请。

我的解决方案是: 在我的活动中,实现一个SurfaceHolder。Callback和setPreviewDisplay for camera是一个SurfaceHolder。在布局中添加一个SurfaceView。 我的代码:

然后:

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

}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    try {
        this.camera.setPreviewDisplay(holder);
        return;
    } catch (IOException localIOException) {
        localIOException.printStackTrace();
    }
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

}
希望对你有用。
如果我的英语不正确,很抱歉。

问题解决了吗?我对相机和画廊也有同样的问题。请参阅我发布的链接:
    @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
        int height) {

}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    try {
        this.camera.setPreviewDisplay(holder);
        return;
    } catch (IOException localIOException) {
        localIOException.printStackTrace();
    }
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

}