Cómo liberar la cámara cuando la gente deje de usar su widget?

He construido un widget que utiliza la cámara para su linterna, que funciona perfectamente encendido y apagado, y la liberación cuando la gente realmente apagarlo, pero si lo enciende y luego voy a la cámara, por supuesto, se bloquea La aplicación de la cámara, ¿cómo puedo liberar la cámara en caso de que un usuario se olvida de apagar la linterna? ¿Hay una manera de detectar cuando una nueva aplicación está a punto de ser iniciado antes de que llama a la cámara?

2 Solutions collect form web for “Cómo liberar la cámara cuando la gente deje de usar su widget?”

Basado en mi investigación, esto es imposible en los dispositivos predeterminados de Android, Samsung logró esto con una de sus aplicaciones, pero esto era más probable debido a su mejora de las características básicas de Android. Esto significaría, sin embargo, que tendría que liberar una documentación sobre cómo se logra esto y sólo funcionaría en los teléfonos que han habilitado este en.

Si alguien más tiene una respuesta que es realmente útil en lugar de especificar por qué no se puede hacer esto, estaría encantado de aceptarlo, lo dejaré aquí esperando que otras personas lo vean y no pierda el tiempo investigando el Sujeto por tanto tiempo como yo.

* Editar, si google de alguna manera actualizar el sistema operativo para permitir a las aplicaciones para comprobar si la cámara se utiliza y si era, para liberarlo, entonces esto sería fácil de trabajar, pero por desgracia, tenemos que esperar por ellos. O desarrollarse en Iphone donde no es necesario que se ponga en contacto con la cámara para acceder al flash.

Ponga el código abajo en su método onDestroy() de su actividad:

 protected void onDestroy(){ if(camera!=null){ camera.stopPreview(); camera.setPreviewCallback(null); camera.release(); camera = null; } } 

Si está utilizando una clase de vista previa por separado, a continuación, agregue el siguiente código:

 public void surfaceDestroyed(SurfaceHolder holder) { if(camera!=null){ camera.stopPreview(); camera.setPreviewCallback(null); camera.release(); camera = null; } } 
  • Uso seguro de glMapBufferRange () en Android / Java
  • SAXParser no puede analizar algunos caracteres
  • Agregar texto a un tipo de datos TextView
  • AndroidRuntime error: Paquete: incapaz de marshal valor
  • ¿Cómo obtener una categoría de aplicación de la tienda de juegos por su nombre de paquete en Android?
  • Logcat durante la producción
  • Osmdroid - mayor nivel de zoom?
  • Android OpenCV: dibujo de partidos con feature2d
  • Cifrado en Android usando el algoritmo RSA con módulo dado y exponente
  • Monitorizar todos los eventos de dispositivos Android de forma remota
  • NullPointerException - Drawable.setBounds - probablemente debido a transiciones de fragmentos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.