在android中设置flash模式

在android中设置flash模式,android,android-camera,Android,Android Camera,我有一些例子来设置闪光模式,不能使它工作。我在相机交换中使用它: final ImageButton button1 = (ImageButton) findViewById(R.id.bt_camera); button1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { camera.release();

我有一些例子来设置闪光模式,不能使它工作。我在相机交换中使用它:

        final ImageButton button1 = (ImageButton) findViewById(R.id.bt_camera);
    button1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            camera.release();
            idCam.id = idCamera(idCam.id);
            camera = Camera.open(idCam.id);
            Camera.Parameters parametro = camera.getParameters();
            parametro.setFlashMode(Parameters.FLASH_MODE_ON);
            camera.setParameters(parametro);
            camera.startPreview();
                try {
            camera.setPreviewDisplay(camHolder.id);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });
如果没有闪存参数,swap工作正常

包含在清单中的权限:


但是日志返回:

05-21 09:25:02.985: D/IPCThreadState(24048): [DN #5] BR_CLEAR_DEATH_NOTIFICATION_DONE cookie 0x64fca0
05-21 09:25:03.260: D/AndroidRuntime(24048): Shutting down VM
05-21 09:25:03.260: W/dalvikvm(24048): threadid=1: thread exiting with uncaught exception (group=0x40ca4258)
05-21 09:25:03.283: E/AndroidRuntime(24048): FATAL EXCEPTION: main
05-21 09:25:03.283: E/AndroidRuntime(24048): java.lang.RuntimeException: setParameters failed
05-21 09:25:03.283: E/AndroidRuntime(24048):    at android.hardware.Camera.native_setParameters(Native Method)
05-21 09:25:03.283: E/AndroidRuntime(24048):    at android.hardware.Camera.setParameters(Camera.java:1714)
05-21 09:25:03.283: E/AndroidRuntime(24048):    at br.com.JairoFilho.teste4.Login$1.onClick(Login.java:66)

请看一下这个答案,看起来几乎是同一个问题:似乎不是所有设备都允许任何参数。我添加了以下内容:`String xxx=parametro.getFlashMode();Toast.makeText(getBaseContext(),xxx,Toast.LENGTH_LONG.show();`它返回“off”。有没有办法找到一个设备允许的参数?我唯一能想到的就是为它做一个if语句:
String xxx=parametro.getFlashMode();如果(xxx.equals(“off”){//Do something}
@JairoFilho,则调用getFlashMode()时返回的字符串值“off”是有效的闪存模式状态flash\u mode\u off。如果设备的摄像头不支持flash模式,则getFlashMode()调用将返回null。因此,不要将“off”与null混淆:)@JairoFilho您可以枚举照相机支持的所有闪光灯模式:list=camera.getParameters().getSupportedFlashModes();如果列表为null或空,则相机没有闪光灯或不支持更改闪光灯模式。