2016-02-10 2 views
1

Я сканирую штрих-код в android используя камеру. Но есть требование, чтобы включить вспышку автоматически, если есть темная область при сканировании штрих-кода и после считывания штрих-кода отключит его. Я хочу его так же, как и приложение для Android по умолчанию.Автоматический «на» вспышка света камеры как приложение камеры для Android делает

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

+0

Так что же это ваш вопрос @Bajrang Hudda? – kevthanewversi

+0

На самом деле мне нужно определить плотность темноты в среде, например, приложение камеры, и в соответствии с плотностью я хочу, чтобы автоматическая вспышка вкл/выкл, как приложение приложения к фотоаппарату, мне нужна такая же логика. –

ответ

2

вы можете использовать FLASH_MODE_AUTO класса Camera.Parameters

вы можете сделать что-то вроде

Camera cam = Camera.open();  
Parameters p = cam.getParameters(); 
p.setFlashMode(Parameters.FLASH_MODE_AUTO); 
cam.setParameters(p); 
cam.startPreview(); 

Также убедитесь, что телефон имеет функцию вспышки

вы можете проверить с

context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 

и не забудьте нажать на разрешение

android.permission.FLASHLIGHT 
+1

попробуйте это [ссылка] (http://stackoverflow.com/questions/4738294/android-detect-brightness-amount-of-light-in-phones-surroundings-using-the-c) –

+0

Спасибо, не удалось найти правильное решение в ссылке. –

0

Вы не можете обнаружить темноту или свет в среде без использования LightSensor, но если вы все еще хотите, чтобы обнаружить вы можете найти интенсивность пикселя захвачены изображений или предварительного просмотра кадра. Эта ссылка наверняка поможет вам в этом. [How to detect average pixel intensity from live camera preview?