FLASH_MODE_TORCH работает/не работает

Я хотел создать приложение для фонарика, используя следующий код. Он работает на HTC Desire HD друга, но не на моем RAZR и Galaxy Nexus друга. Я также пробовал решение с focus_mode_infinity, но все равно безуспешно.

package com.example.flashlight;

import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

Camera camera = null;
Parameters parameters;


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



     final Button OnOff = (Button)findViewById(R.id.Switch);


    OnOff.setOnClickListener(new Button.OnClickListener() {




@Override   
public void onClick(View arg0) {



    if(camera == null) {
        camera = Camera.open();
        camera.startPreview();
        parameters = camera.getParameters();
        parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
        parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_INFINITY);
        camera.setParameters(parameters);

    }
    else {
        parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
        parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
        camera.setParameters(parameters);
        camera.release();
        camera = null;

    } 

} 


});
}}

person user1946280    schedule 03.01.2013    source источник


Ответы (2)


Я думаю, что FLASH_MODE_TORCH не поддерживается RAZR, у меня была такая же проблема с клиентом, сообщившим о той же проблеме для одного приложения (Flash не мигает). Я предлагаю вам перед установкой параметра проверить, поддерживается ли он:

List<String> flashModes = parameters.getSupportedFlashModes();
if (flashModes.contains(Parameters.FLASH_MODE_TORCH)) {
    // Mode supported good to go
}
person Wizche    schedule 13.02.2013
comment
Так не пойдет. Пример: Galaxy S3 mini, поддерживаемые режимы вспышки: [авто, макро, фиксированный]. Тем не менее FLASH_MODE_TORCH и FLASH_MODE_OFF работают нормально. - person Cynichniy Bandera; 18.09.2013

после настройки параметров камеры используйте следующий метод:

camera.startPreview();

здесь камера - это ваш объект камеры.

person Efsun Derin    schedule 31.08.2013