Agradecimientos
Sobre el autor
Sobre el editor técnico
Introducción
A quién va dirigido este libro
Contenidos del libro
Estructura del libro
Qué se necesita para utilizar este libro
Convenciones
Código fuente
1. Conceptos básicos sobre Android
Ejercicio 1.1. Vincular actividades
Solución
Ejercicio 1.2. Intercambiar datos entre actividades
Solución
Ejercicio 1.3. Pasar objetos entre actividades
Solución
Ejercicio 1.4. Enviar y recibir difusiones
Solución
Programar un receptor de difusiones
Registrar BroadcastReceiver en el archivo AndroidManifest.xml
Ejercicio 1.5. Asignar prioridades a los receptores de difusión
Solución
Cancelar una difusión
Ejercicio 1.6. Iniciar automáticamente una aplicación durante el arranque del sistema
Solución
Ejercicio 1.7. Llamar a las aplicaciones nativas
Solución
Mostrar mapas
Abrir una aplicación en Google Play
Enviar un correo electrónico
Enviar contenido a otras aplicaciones
Enviar contenido binario
Ejercicio 1.8. Permitir que se pueda llamar a nuestras aplicaciones
Solución
2. Utilizar vistas para diseñar la interfaz del usuario
Ejercicio 2.1. Utilizar botones
Solución
Ejercicio 2.2. Utilizar botones de imágenes
Solución
Ejercicio 2.3. Utilizar botones de opción
Solución
Ejercicio 2.4. Utilizar casillas de verificación
Solución
Ejercicio 2.5. Implementar un sistema de valoración
Solución
Ejercicio 2.6. Implementar un sistema de valoración
Solución
Ejercicio 2.7. Mostrar páginas Web
Solución
Cargar desde una cadena
Cargar recursos desde una carpeta
Ejercicio 2.8. Trabajar con el selector de horas
Solución
Ejercicio 2.9. Trabajar con el selector de días
Solución
Ejercicio 2.10. Trabajar con el selector de días
Solución
Orientaciones
Gravedad y peso
Ejercicio 2.11. Utilizar posiciones relativas para colocar las vistas
Solución
Ejercicio 2.12. Utilizar la distribución de marcos para ubicar las vistas
Solución
Ejercicio 2.13. Utilizar la distribución de tabla para colocar las vistas
Solución
Ejercicio 2.14. Utilizar la vista desplazable
Solución
Ejercicio 2.15. Mostrar menús contextuales y de opciones
Solución
Ejercicio 2.16. Utilizar cuadros de diálogo
Solución
Ejercicio 2.17. Utilizar páginas
Solución
3. Mostrar listas de elementos e imágenes
Ejercicio 3.1. Vincular actividades
Solución
Ejercicio 3.2. Personalizar ListView
Solución
Ejercicio 3.3. Mostrar varias listas
Solución
Ejercicio 3.4. Crear ListView personalizadas
Solución
Ejercicio 3.5. Personalizar cada fila con TextView adicionales
Primera parte de la solución: añadir TextView adicionales
Segunda parte de la solución: reciclar las filas
Ejercicio 3.6. Mostrar una lista de elementos utilizando la vista Spinner
Solución
Ejercicio 3.7. Mostrar una lista de imágenes
Solución
Ejercicio 3.8. Utilizar ImageSwitcher para animar el cambio de imágenes
Solución
Ejercicio 3.9. Utilizar GridView para mostrar imágenes
Solución
Ejercicio 3.10. Construir una interfaz de usuario Master-Detail
Solución
4. Telefonía
Ejercicio 4.1. Realizar una llamada desde la aplicación
Solución
Ejercicio 4.2. Detectar el estado del teléfono
Solución
Ejercicio 4.3. Detectar en segundo plano el estado del teléfono
Solución
Ejercicio 4.4. Bloquear las llamadas salientes
Solución
Ejercicio 4.5. Responder automáticamente a una llamada entrante
Solución
Ejercicio 4.6. Activar el Modo avión
Solución
Ejercicio 4.7. Obtener el número de teléfono, IMEI y el identificador de la tarjeta SIM
Solución
Ejercicio 4.8. Activar el Bluetooth
Solución
Comprobar si el dispositivo dispone de Bluetooth
Activar el Bluetooth
Detectar el estado del Bluetooth
Ejercicio 4.9. Mostrar el registro de llamadas
Solución
5. Mensajería
Ejercicio 5.1. Utilizar la aplicación nativa para enviar SMS
Solución
Ejercicio 5.2. Utilizar la programación para enviar mensajes SMS desde nuestra aplicación
Solución
Ejercicio 5.3. Utilizar la programación para detectar el estado de los mensajes enviados
Solución
Ejercicio 5.4. Detectar los mensajes SMS salientes
Solución
Ejercicio 5.5. Interceptar los mensajes SMS entrantes
Solución
6. Programación para redes
Ejercicio 6.1. Conectar con servidores utilizando GET de HTTP
Solución
Ejercicio 6.2. Conectar con servidores utilizando POST de HTTP
Solución
Ejercicio 6.3. Utilizar HTTP para descargar datos binarios
Solución
Ejercicio 6.4. Consumir servicios Web XML
Solución
Ejercicio 6.5. Conectar Consumir servicios Web JSON
Solución
Ejercicio 6.6. Obtener la dirección IP del dispositivo
Solución
Ejercicio 6.7. Crear un socket server
Solución
Ejercicio 6.8. Crear un socket client
Solución
Ejercicio 6.9. Comprobar la disponibilidad del Bluetooth
Solución
Ejercicio 6.10. Detectar el estado del Bluetooth
Solución
Ejercicio 6.11. Crear una aplicación de chat a través del Bluetooth
Solución
Crear el proyecto
Crear la interfaz del usuario
Añadir nuevas clases
Importar los paquetes que se vayan a utilizar
Declarar los objetos
Permitir que nuestro dispositivo sea detectable
Buscar otros dispositivos
Crear un hilo para la comunicación
Crear un hilo de ejecución para escuchar las conexiones entrantes
Crear un hilo de ejecución para conectar con el servidor
Unir todas las piezas del rompecabezas
Probar la aplicación
7. Utiliza Google Maps
Ejercicio 7.1. Instalar la librería de servicios para Google Maps
Solución
Instalar Google Play Services Library
Importar el proyecto Google Play Services Library a nuestro espacio de trabajo
Ejercicio 7.2. Mostrar Google Maps
Solución
Añadir la librería para los servicios de Google Play
Solicitar la clave para la API de Google Maps
Mostrar el mapa
Ejercicio 7.3. Utilizar el paquete Android Support Package para Google Maps
Solución
Ejercicio 7.4. Cambiar los modos del mapa
Solución
Ejercicio 7.5. Aplicar el zoom a Google Maps
Solución
Ejercicio 7.6. Mostrar una ubicación determinada en el mapa
Solución
Ejercicio 7.7. Añadir marcadores al mapa
Solución
Mostrar un marcador en la posición actual
Mostrar un marcador en una ubicación determinada
Dibujar una línea para unir dos puntos
8. Servicios de datos basados en la ubicación
Ejercicio 8.1. Obtener la ubicación geográfica utilizando el GPS o las redes Wi-Fi y móvil
Solución
Ejercicio 8.2. Seleccionar el mejor proveedor
Solución
Ejercicio 8.3. Monitorizar una ubicación
Solución
Ejercicio 8.4. Utilizar un receptor de difusión para obtener publicaciones
Solución
Ejercicio 8.5. Registrar los datos de la ubicación
Solución
9. Acceder al hardware
Ejercicio 9.1. Utilizar la Cámara para hacer fotos
Solución
Este manual es un recurso práctico indispensable para aquellos que necesitan comprender y solucionar los problemas y desafíos a los que tendrán que enfrentarse en su vida diaria como desarrolladores. Encontrará numerosos ejercicios especialmente diseñados para Android 4.1 y versiones posteriores, que proporcionan soluciones a todo tipo de problemas, desde los más sencillos (como trabajar con una vista) hasta los más complicados (como implementar una aplicación Master-Detail utilizando fragmentos).
Wei-Meng Lee es tecnólogo y fundador de Developer Learning Solutions (www.learn2develop.net), empresa tecnológica especializada en la formación práctica y para profesionales en las últimas tecnologías móviles. Prestigioso autor de numerosos libros sobre iOS, Android y Windows Phone, e innumerables artículos de tecnología.