2014-11-03 2 views
1

Мне нужно показать встроенную камеру Android (с использованием намерения) с помощью FlashMode Off.Android NativeCamera открыта с намерением с отключенной вспышкой камеры

Я прочитал, что параметры намерения не получат гарантированного результата, поскольку это зависит от реализации Phone Device.

Может ли кто-нибудь подтвердить это? Я не могу найти официальную информацию о том

String fileName = "new-photo-name.jpg"; 
//create parameters for Intent with filename 
     ContentValues values = new ContentValues(); 
     values.put(MediaStore.Images.Media.TITLE, fileName); 
     values.put(MediaStore.Images.Media.DESCRIPTION, "Image capture by camera"); 
//imageUri is the current activity attribute 
     Uri imageUri = getContentResolver().insert(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
//create new Intent 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra("android.intent.extras.FLASH_MODE_OFF",1); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 
     startActivityForResult(intent, 1); 

ответ

1

Для этого вы должны сделать так:

  1. Проверьте ли свет вспышки доступен или нет?

  2. Если да, то не Turn Off/On

  3. Если нет, то вы можете делать все, что в соответствии с вашим приложением. потребности

Для Проверить наличие вспышки в устройстве:

Вы можете использовать следующие

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

, которая возвращает истину, если вспышка доступна, ложь, если нет.

Для получения дополнительной информации см. http://developer.android.com/reference/android/content/pm/PackageManager.html.

Для включения фонарика/выключения:

Я гугл, и получил это о android.permission.FLASHLIGHT. разрешение андроид манифестов выглядит многообещающе:

<!-- Allows access to the flashlight --> 
<permission android:name="android.permission.FLASHLIGHT" 
      android:permissionGroup="android.permission-group.HARDWARE_CONTROLS" 
      android:protectionLevel="normal" 
      android:label="@string/permlab_flashlight" 
      android:description="@string/permdesc_flashlight" /> 

Затем использовать Camera и установить Camera.Parameters. Основной параметр, используемый здесь, - FLASH_MODE_TORCH.

например.

Фрагмент кода для включения вспышки камеры.

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

Фрагмент кода для отключения подсветки камеры.

cam.stopPreview(); 
    cam.release(); 
+0

Спасибо, Химаншу за быстрый отклик, но я думаю, что мне нужно открыть CameraPreview, используя намерение. Я уточню свой вопрос, потому что я не был точен. –

+0

вы можете проверить [это] (http://androidexample.com/Camera_Photo_Capture_And_Show_Captured_Photo_On_Activity_/index.php?view=article_discription&aid=77&aaid=101) для открытия камеры и использования над кодом для включения или выключения вспышки –

+0

Himanshu Agarwal, можете ли вы, пожалуйста, помогите мне относительно http://stackoverflow.com/questions/26714771/android-camera-take-picture-failed-issue – koutuk

Смежные вопросы