Configuración de Parameters.FLASH_MODE_TORCH no funciona en Droid X 2.3
Estoy escribiendo una aplicación que establece el modo de flash a la antorcha. He estado probando la aplicación en mi Droid X, y la luz LED no se enciende. Lo probé en un Droid increíble y funcionó bien. No puedo averiguar cuál es el problema. Aquí es parte de mi código para encender el modo antorcha.
Camera mCamera = Camera.open(); Camera.Parameters params = mCamera.getParameters(); if(params.getFlashMode() != null){ params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); } mCamera.setParameters(params);
He añadido mCamera.startPreview (); porque leí que debería hacer una diferencia, pero no lo hace. También hice una lista de los modos de flash disponibles y los mostró en la pantalla para asegurarse de que mi Droid X tiene modo de antorcha, y estaba en la lista. Incluso he creado una nueva aplicación de código que encontré en línea que enciende y apaga el flash LED con un botón. Una vez más, funcionó bien en el Droid increíble, pero no en el Droid X. ¿Hay algo que me falta para que esto funcione en el Droid X, o podría ser algo con Gingerbread? El Droid X está ejecutando Gingerbread y el Droid Incredible está ejecutando FroYo.
- No se puede usar la cámara después de apagar la linterna
- ¿Hay alguna manera de liberar una cámara de diferentes actividades después de adquirirlo de una actividad diferente.?
- Utilizar linterna de cámara en Android
- ¿Cómo selecciono la cámara correcta para encender la linterna, en Android 2.2?
- Apertura de linterna en android con diferentes modos
- ¿Cómo puedo liberar la cámara cuando otra aplicación lo solicite?
- Android: Mantenga la cámara LED encendida después de que la pantalla se apague
- Nexus 5 (4.4.2) El LED de la linterna no se enciende
- Linterna LED no funciona en Samsung Galaxy Nexus
- Linterna LED en xperia Z5
- Cómo encender la linterna Android
- ¿Puedo controlar la linterna sin usar android.hardware.Camera?
- Cómo encender la linterna y la cámara frontal al mismo tiempo en android
Hay bastantes peculiaridades al configurar FLASH_MODE_TORCH.
A menudo, es necesario iniciar una vista previa de la cámara:
Camera mCamera = Camera.open(); mCamera.startPreview(); Camera.Parameters params = mCamera.getParameters(); if(params.getFlashMode() != null){ params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); } mCamera.setParameters(params);
Eso puede resolverlo en algunos teléfonos, otros teléfonos también requieren la vista previa para ser dibujado a un SurfaceView. Esto se puede hacer mediante la implementación de SurfaceHolder.Callback interfaz en su actividad. Vea un ejemplo aquí .
Podría ser que el Droid X no soporta el modo antorcha. Intente algo como esto:
List<String> pList = camera.getParameters().getSupportedFlashModes(); if (pList.contains(Parameters.FLASH_MODE_TORCH)) parameters.setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(parameters);
La única cosa que encontré que funciona en el Droid X es el código presentado por Siddhpura Amit parte por la página en esta respuesta Use la linterna de la cámara en Android . Comprueba al fabricante y comprueba si contiene la cadena "motorola". Si es así, tiene un código especial que puede encender o apagar el LED Flash de la cámara. Puedo verificar que funciona como tengo un Motorola Droid X.
Consulte el número 191453 :
SurfaceTexture mDummy = new SurfaceTexture(1); // any int argument will do camera.setPreviewTexture(mDummy); camera.startPreview();