Подтвердить что ты не робот

Как проверить, имеет ли устройство вспышку светодиодный андроид

Как проверить, есть ли у камеры камера (фонарик). Я говорю об устройствах с ОС Android?

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

для включения камеры я использую camera.open()

4b9b3361

Ответ 1

Другие ответы

boolean hasFlash = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

Не работает для нового 2013 Nexus 7. Следующий код будет работать:

public boolean hasFlash() {
        if (camera == null) {
            return false;
        }

        Camera.Parameters parameters = camera.getParameters();

        if (parameters.getFlashMode() == null) {
            return false;
        }

        List<String> supportedFlashModes = parameters.getSupportedFlashModes();
        if (supportedFlashModes == null || supportedFlashModes.isEmpty() || supportedFlashModes.size() == 1 && supportedFlashModes.get(0).equals(Camera.Parameters.FLASH_MODE_OFF)) {
            return false;
        }

        return true;
    }

Ответ 2

getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH) возвращает значение true, если устройство имеет вспышку. Подробнее см.

Ответ 3

Вы можете проверить, доступна ли вспышка, проверяя системные функции:

boolean hasFlash = this.getPackageManager()
                       .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

(если вы находитесь в Activity). Если нет, используйте вместо this какой-то context.

P.S. Обратите внимание, что эту информацию довольно легко найти, если вы действительно попытаетесь ее найти.

Ответ 4

PackageManager pm = context.getPackageManager();
        if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
            Log.e("err", "Device has no camera!");
            return;
        }       
        camera = Camera.open();
        p = camera.getParameters();
        flashModes = p.getSupportedFlashModes();
if(flashModes==null){
                        Toast.makeText(getApplicationContext(), "LED Not Available",Toast.LENGTH_LONG).show();
                }else
                {
Toast.makeText(getApplicationContext(), "LED  Available",Toast.LENGTH_LONG).show();
}