in

¿Cómo encender la luz del flash frontal de forma programática en Android?

apple touch icon@2

Para 2021, con CameraX, ahora es muy fácil: https://stackoverflow.com/a/66585201/294884


Para este problema debes:

  1. Compruebe si la linterna está disponible o no.

  2. Si es así, apague / encienda

  3. De lo contrario, puede hacer lo que sea, de acuerdo con las necesidades de su aplicación.

Para Comprobando la disponibilidad de flash en el dispositivo:

Puede utilizar lo siguiente:

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

que devolverá verdadero si hay un flash disponible, falso si no.

Ver:
http://developer.android.com/reference/android/content/pm/PackageManager.html para obtener más información.

Para encender / apagar la linterna:

Busqué en Google y obtuve esto sobre android.permission.FLASHLIGHT. El permiso de los manifiestos de Android parece prometedor:

 <!-- 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" />

Entonces haz uso de Cámara y establecer Parámetros de la cámara. El principal parámetro utilizado aquí es FLASH_MODE_TORCH.

p.ej.

Fragmento de código para encender la linterna de la cámara.

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

Fragmento de código para apagar la luz LED de la cámara.

  cam.stopPreview();
  cam.release();

Acabo de encontrar un proyecto que usa este permiso. Verifique el código src de la configuración rápida. aquí http://code.google.com/p/quick-settings/ (Nota: este enlace ahora está roto)

Para linterna mira directamente http://code.google.com/p/quick-settings/source/browse/trunk/quick-settings/#quick-settings/src/com/bwx/bequick/flashlight (Nota: este enlace ahora está roto)

Actualización6
¿También puede intentar agregar un SurfaceView como se describe en esta respuesta de linterna LED en Galaxy Nexus controlable por qué API? Esta parece ser una solución que funciona en muchos teléfonos.

Actualización 5 Actualización importante

Encontré un enlace alternativo (para los enlaces rotos anteriores): http://www.java2s.com/Open-Source/Android/Tools/quick-settings/com.bwx.bequick.flashlight.htm Ahora puede utilizar este enlace. [Update: 14/9/2012 This link is now broken]

Actualización 1

Otro código de fuente abierta:
http://code.google.com/p/torch/source/browse/

Actualización 2

Ejemplo que muestra cómo habilitar el LED en un Motorola Droid: http://code.google.com/p/droidled/

Otro código fuente abierto:

http://code.google.com/p/covedesigndev/
http://code.google.com/p/search-light/

Actualización 3 (Widget para encender / apagar el led de la cámara)

Si desea desarrollar un widget que encienda / apague el led de su cámara, entonces debe consultar mi Widget de respuesta para encender / apagar la linterna de la cámara en Android.

Actualización 4

Si desea establecer la intensidad de la luz que emerge del LED de la cámara, puede consultar ¿Puedo cambiar la intensidad del LED de un dispositivo Android? publicación completa. Tenga en cuenta que solo los dispositivos HTC rooteados admiten esta función.

** Cuestiones:**

También hay algunos problemas al encender / apagar la linterna. p.ej. para los dispositivos que no tienen FLASH_MODE_TORCH o incluso si lo ha hecho, la linterna no se enciende, etc.

Normalmente, Samsung crea muchos problemas.

Puede consultar los problemas en la siguiente lista:

Usar la linterna de la cámara en Android

Encienda / apague la luz LED / flash de la cámara en Samsung Galaxy Ace 2.2.1 y Galaxy Tab

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

addition table

Aritmética binaria

APUrcjKWXXQLxr5peza9zY 1200 80

No hay una escena posterior a los créditos de Tenet, pero todavía hay algo por lo que vale la pena quedarse