martes, 4 de octubre de 2011

Prácticas Android: ejecutando aplicaciones apk desde otras aplicaciones Android


En un post anterior vimos un ejemplo de cómo comunicar dos aplicaciones Android independientes pero, claro está, eso suponía que la aplicación invocada debía estar instalada antes de la llamada, de lo contrario, lo único que podíamos hacer era mostrar un mensaje avisando de la ausencia de la misma. En este ejemplo damos un paso más allá: ejecutar automáticamente el archivo de instalación de la aplicación externa requerida si ésta no está presente en el sistema. La actividad principal consiste en un cuadro de texto donde se escribirá la ruta de un archivo y un botón para activar el explorador de archivos OI File Manager que permita seleccionarlo de forma visual sin necesidad de escribir la ruta a mano. Si el explorador está instalado se despliega normalmente; si no, se ejecuta el archivo de instalación.

Para que esto sea posible se copia el archivo de instalación del OI File Manager en la subcarpeta /res/raw del árbol del proyecto. Esto supone la integración total de dicho archivo con el resto del proyecto. Cuando se envía un intent al explorador y éste no responde, se hace una copia temporal del archivo apk de /res/raw a la tarjeta SD (véase el método boolean guardarRawComo(String nombreFichero)). Una vez desplegado el apk en la SD ya podemos proceder a su ejecución con el envío de un nuevo intent con una acción de tipo ACTION_VIEW que activará la actividad de instalación. Al terminar y devolver el control a la actividad principal, se elimina el archivo temporal de la SD. Es importante contar el permiso de instalación de paquetes "android.permission.INSTALL_PACKAGES" declarado en el descriptor AndroidManifest.xml.

Puedes descargar el proyecto NetBeans aquí.



No hay comentarios:

Publicar un comentario