jueves, 25 de julio de 2013

Luz, aplicación de linterna para Android


En el segundo post del blog voy a indicar cómo para crear una aplicación simple de linterna para Android. Esta aplicación es bastante sencilla y probablemente pasarán más tiempo diseñando la aplicación que codificándola. Para explicar cómo se realiza esta aplicación se va a partir de la aplicación que ya tengo subida en google play. Los primeros pasos serán para explicar rápidamente cómo instalar  e importar el proyecto en eclipse con el kit de desarrollo de Android (SDK en adelante) para después explicar el código para encender el led de luz de nuestros dispositivos android.

 En primer lugar es necesario tener instalado Eclipse con el SDK de Android. Este proceso es muy sencillo y sólo deben instalar el SDK siguiendo los pasos que aparecen en la página de android developers http://developer.android.com/sdk/index.html.

Página de desarrolladores de Android

 Una vez instalado sólo deberán clonar el contenido de mi repositorio git https://github.com/jmjurado23/Light . Una vez clonado, sólo hay que importar el proyecto con la opción: File > Import > Android > Existing Android Code into Workspace, buscar la carpeta y dar a importar. Es posible que le de errores al decirle que su máquina no dispone del target necesario para la versión de Android requerida. Sólo deben instalar los archivos de la versión 11 y 15 del SDK, correspondientes a Android 3.0 y Android 4.0.4.

AndroidManifest de la aplciación importada
 Con el proyecto importado vamos a proceder a comentar el código. En primer lugar indicar que esta aplicación está creada por dos Activities.java y un Widget.java. Los archivos son:

  • MainActivity.java: Fichero con la lógica para encender y apagar la luz desde la aplicación
  • AboutActivity.java: Fichero con la información del autor del proyecto
  • WidgetLight.java: Fichero con la lógica para hacer funcionar el widget para encender directamente la linterna desde el escritorio de Android.
  El código para encender la linterna es el siguiente:

// Código para encender la luz
private Parameters parameters;
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);

// Código para apagar la luz
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;

  Es muy importante liberar el recurso de la cámara una vez hemos apagado la luz puesto que sólo una aplicación puede hacer uso de la cámara si otra aplicación lo está usando. Android considera al led como parte de la cámara. No se olviden de añadir los permisos de la cámara en AndroidManifest:
// Permisos en el android manifest


    
    

  El funcionamiento del widget es algo más complejo y se explicará otro día en otro tutorial, pero pueden ver cómo funciona en el código de la aplicación.

  El resultado final de la aplicación una vez se añade funcionalidad a los botones, y se diseñan los dibujos de encendido y apagado de la aplicación y del widget es el siguiente:


 La aplicación la tengo subida a Google Play desde hace bastante tiempo en el enlace: https://play.google.com/store/apps/details?id=com.light.luz por si quieren probarla desde google play sin necesidad de compilarla.

  Espero que os sea de ayuda el código para realizar vuestra propia aplicación de linterna para Android.

No hay comentarios:

Publicar un comentario