Android相机闪光灯关闭后未打开

Android相机闪光灯关闭后未打开,android,camera,Android,Camera,我的相机预览屏幕上有一个按钮可以切换相机的闪光灯。相机以自动闪光灯启动,按下按钮后闪光灯关闭,但当我尝试重新打开闪光灯时,闪光灯没有打开,我不知道为什么 Log.d("flash",mCamera.getParameters().getFlashMode()); 按下时显示on off和auto。但它不会再打开。这是我的全部代码 public void flashPressed(View v) { ImageButton flashButton = (ImageButton)findV

我的相机预览屏幕上有一个按钮可以切换相机的闪光灯。相机以自动闪光灯启动,按下按钮后闪光灯关闭,但当我尝试重新打开闪光灯时,闪光灯没有打开,我不知道为什么

Log.d("flash",mCamera.getParameters().getFlashMode());
按下时显示on off和auto。但它不会再打开。这是我的全部代码

public void flashPressed(View v)
{
    ImageButton flashButton = (ImageButton)findViewById(R.id.flash);
    Camera.Parameters myP = mCamera.getParameters();
    if(flashOn == 0)
    {
        flashButton.setImageResource(R.drawable.device_access_flash_off);

        myP.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        flashOn = 1;

    }
    else if(flashOn == 1)
    {
        myP.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
        flashButton.setImageResource(R.drawable.device_access_flash_on);
        flashOn=2;
    }else{
        myP.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
        flashButton.setImageResource(R.drawable.device_access_flash_automatic);
        flashOn =0;
    }

    mCamera.setParameters(myP);
    Log.d("flash",mCamera.getParameters().getFlashMode());
}

为了避免这个问题,每次flash选项更改时,我都会创建一个新的摄像头,这就是我创建flash应用程序的方式

public class Flash extends Activity {
    boolean cameraOpened;
    static Camera camFlash = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    }

    @Override
    public void onPause() {
        super.onPause();
        if (camFlash != null) {
            camFlash.stopPreview();
            camFlash.release();
            camFlash = null;

        }

    }

    public void turnOnFlash(View view) {
        if (camFlash == null) {
            camFlash = Camera.open();
        }
        if (camFlash != null) {
            Parameters params = camFlash.getParameters();
            params.setFlashMode(Parameters.FLASH_MODE_TORCH);
            camFlash.setParameters(params);
            camFlash.startPreview();
            camFlash.autoFocus(new AutoFocusCallback() {
                public void onAutoFocus(boolean success, Camera camera) {
                }
            });

        }
    }

    public void turnOffFlash(View view) {
        if (camFlash != null) {
            camFlash.stopPreview();
            camFlash.release();
            camFlash = null;
        }
    }
}

方法turnOnFlash()和turnOffFlash是从xml android:onClick调用的。

我正在两款不同的手机上测试这一点,一款手机正常工作,另一款则没有