приложение факел Android - PullRequest
       4

приложение факел Android

1 голос
/ 19 апреля 2011

Привет, я хочу реализовать приложение факела в Android, поэтому вот мой код

    setContentView(R.layout.main);
    camera = Camera.open();
    if(camera == null)
        Toast.makeText(getBaseContext(),"CAMERA FAILED", Toast.LENGTH_LONG).show();
    else
        Toast.makeText(getBaseContext(),"camera opened",Toast.LENGTH_LONG).show();
}
public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
        switch (keyCode) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            if (action == KeyEvent.ACTION_UP) {
                if(camera!=null)
                {
                     Toast.makeText(getBaseContext(),"came to volume up",Toast.LENGTH_LONG).show();
                     Parameters params = camera.getParameters();
                     params.setFlashMode( Parameters.FLASH_MODE_ON );
                     camera.setParameters(params);

                }
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_UP) {
                Parameters params = camera.getParameters();
                params.setFlashMode( Parameters.FLASH_MODE_OFF );
                camera.setParameters(params);
                camera.release();
                camera = null;
                Toast.makeText(getBaseContext(),"came to volume down",Toast.LENGTH_LONG).show();
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
        }
    }

}

почему этот код не работает ???

Ответы [ 4 ]

1 голос
/ 19 апреля 2011

Дурга,

Я полагаю, что вы хотите FLASH_MODE_TORCH, а не FLASH_MODE_ON при нажатии клавиши увеличения громкости.

Возможно, могут потребоваться следующие разрешения: FLASHLIGHT и CAMERA

0 голосов
/ 26 июля 2012

Уильям Тейт был прав, говоря, что вам нужно FLASH_MODE_TORCH вместе с двумя разрешениями, но аппаратное обеспечение камеры не будет затронуто, пока вы не начнете предварительный просмотр видео.

Этот код включает факел (хотя вы, возможно, захотите отловить ошибки в вашем реальном приложении):

Camera c = Camera.open();
Camera.Parameters p = c.getParameters();
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
c.setParameters(p);
c.startPreview();

И правильно отформатированные разрешения будут выглядеть в вашем манифесте Android:

<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
0 голосов
/ 15 июня 2011

Иметь класс, который расширяет SurfaceView и реализует SurfaceView.Callback. В конструкторе добавьте обратный вызов для держателя и установите его тип PUSH_BUFFERS.

Для этого класса инициализируйте ваш объект Camera в методе surfaceCreated и установите там параметры вашей камеры.

В SurfaceDestroy отпустите объект камеры.

Кроме того, реализуйте дополнительные методы, чтобы определить, есть ли на устройстве Samsung светодиод, а светодиод устройства светится.

В вашей деятельности объявите объект вида поверхности, добавьте его в свой макет, затем setContentView.

0 голосов
/ 14 июня 2011

Для Samsung вам необходимо иметь вид поверхности для предварительного просмотра камеры, чтобы работал режим горелки.

ВЫ уже работали?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...