12.4 Programación de acciones con calendario, geocercas y estados del dispositivo

12.4 Programación de acciones con calendario, geocercas y estados del dispositivo

12.4.1 Acciones basadas en el calendario

Permite programar tareas o notificaciones en función de eventos guardados en el calendario del usuario.

  • Permisos necesarios: READ_CALENDAR y WRITE_CALENDAR
  • Obtener eventos:
    1. Realizar consulta sobre content://com.android.calendar/events
    2. Filtrar por fecha, título o etiqueta deseada
  • Programar alarmas:
    1. Usar AlarmManager o WorkManager para disparar en la fecha/hora del evento
    2. Registrar un BroadcastReceiver o JobIntentService que maneje la acción
  • Flujo típico:
    1. Lectura de eventos futuros
    2. Filtrado por criterios de usuario
    3. Registro de alarmas para cada evento relevante

12.4.2 Geocercas

Definición de zonas geográficas que disparan acciones al entrar o salir de ellas.

  • Dependencia: com.google.android.gms:play-services-location
  • Pasos para configurar:
    1. Crear un objeto Geofence con identificador, latitud, longitud, radio y tipos de transición (ENTER, EXIT)
    2. Agregar la geocerca a GeofencingClient
    3. Registrar un PendingIntent que invoque un BroadcastReceiver o Service cuando se active la geocerca
Parámetro Descripción
requestId Identificador único de la geocerca
latitude / longitude Coordenadas del centro de la zona
radius Radio de la zona en metros
transitionTypes Tipo de evento (ENTER, EXIT, DWELL)

Ejemplo de flujo

  1. Permitir permisos de ubicación en tiempo de ejecución
  2. Configurar geocerca y registrar PendingIntent
  3. Implementar BroadcastReceiver que reciba las transiciones
  4. Ejecutar lógica (notificación, servicio, sincronización)

12.4.3 Estados del dispositivo

Monitorización de cambios en el sistema: conectividad, batería, pantalla, modo avión, etc.

  • Registrar BroadcastReceiver (estáticos en el manifiesto o dinámicos) para recibir intents del sistema
  • Principales intents y sus acciones:
    Estado Intent
    Conectividad android.net.conn.CONNECTIVITY_CHANGE
    Batería baja android.intent.action.BATTERY_LOW
    Pantalla encendida android.intent.action.SCREEN_ON
    Modo avión android.intent.action.AIRPLANE_MODE
  • Procesamiento de eventos:
    1. En el método onReceive, comprobar la acción del intent
    2. Ejecutar la lógica asociada (sincronizar datos, ajustar comportamientos, notificar al usuario)

Buenas prácticas

  • Usar receivers dinámicos cuando solo se necesite vigilar en primer plano
  • Limitar el uso de receivers estáticos para eventos críticos
  • Gestionar adecuadamente los permisos y el consumo de batería

Profundizando sobre: 12.4 Programación de acciones con calendario, geocercas y estados del dispositivo

12.4 Programación de acciones con calendario, geocercas y estados del dispositivo

Libros

  • Android Programming: The Big Nerd Ranch Guide (Bill Phillips, Chris Stewart y Kristin Marsicano) – Capítulos sobre Calendar Provider y servicios de localización.
  • Professional Android, 4th Edition (Reto Meier e Ian Lake) – Sección dedicada a sensores, BroadcastReceivers y Geofencing API.
  • Android Cookbook (Ian F. Darwin) – Recetas prácticas para el manejo de calendario, geocercas y gestión de estados del dispositivo.

Recursos online

PreviusNext


¿Necesitas ayuda con este punto? Nuestra IA te puede ayudar

  • Hola 👋 , soy la IA de Synzen.org, puedes preguntarme siempre sobre la página donde estás leyendo, yo también la leo, así que puedo ayudarte a entenderlo, expandirlo, ponerte ejercicios…¡y mucho más!
Quiero saber más sobre… ...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *