Golub

Pruebas y solución de problemas

Cómo probar geovallas y funciones de ubicación en Android

Última revisión: · 3 min de lectura · Los nombres de los menús cambian según la marca y la versión de Android.

Respuesta corta

Para probar funciones de ubicación, usa el panel Location del emulador de Android Studio (un punto o una ruta GPX/KML) para pruebas rápidas y repítelas en un móvil real con una app de ubicación simulada seleccionada. Recorre una ruta que cruce tu geovalla para probar entrada, permanencia y salida, también con la pantalla apagada.

Vídeo en inglés, con subtítulos que YouTube puede traducir al español. Se carga desde YouTube (youtube-nocookie.com) solo cuando pulsas reproducir.

Paso a paso: Probar geovallas en Android

  1. Prueba rápida en el emuladorEn el emulador, abre Extended controls › Location y fija un punto, o carga una ruta GPX/KML y reprodúcela. Desde la terminal: adb emu geo fix <longitud> <latitud>.
  2. Prepara un móvil realActiva las Opciones para desarrolladores y elige una app en Seleccionar aplicación de ubicación simulada.
  3. Cruza la geovalla con una rutaReproduce una ruta que empiece fuera del radio, entre, permanezca más que tu retardo de permanencia y salga.
  4. Repite con la pantalla apagadaBloquea el móvil y repite la ruta durante al menos 30 minutos para detectar límites en segundo plano y Doze.
  5. Guarda pruebasRegistra las transiciones en tu app y graba la pantalla con adb shell screenrecord.

Primero el emulador: rápido y repetible

El emulador de Android Studio tiene un panel Location en Extended controls: fija un punto o carga un archivo GPX/KML y reprodúcelo a distintas velocidades. Desde la terminal, adb emu geo fix <longitud> <latitud> fija un punto (ojo al orden: primero la longitud).

Por qué siguen importando los móviles reales

Los móviles reales añaden políticas de batería del fabricante, Doze, ruido de los sensores y los tiempos propios del proveedor de ubicación combinada. Una geovalla que salta siempre en el emulador puede llegar tarde o no saltar en un móvil real con la pantalla apagada.

Una matriz de pruebas práctica

CasoCómo probarlo
EntradaRuta que empieza fuera y entra en el radio
SalidaLa misma ruta saliendo por el otro lado
PermanenciaParada dentro del radio más tiempo que el retardo de permanencia
Borde del radioPasear cerca del límite para ver transiciones por imprecisión
Cambios de velocidadAlternar andando y en coche, o mover con un joystick
Segundo planoPantalla apagada 30 minutos, con y sin optimización de batería

Gestiona isMock() en las versiones de QA

Las ubicaciones de un proveedor simulado llevan una marca: Location.isMock() en Android 12+, isFromMockProvider() antes. Regístrala en las versiones de depuración para saber siempre si una prueba usó datos simulados.

Golub para pruebas en dispositivo

Golub – simulador de ubicación para Android reproduce rutas por calles reales a velocidad realista, importa tus archivos GPX de prueba, ofrece un joystick flotante para casos límite y un modo pasear para la imprecisión. Las rutas, el joystick y pasear forman parte de Premium.

Referencia oficial: documentación de geovallas de Android.

Preguntas frecuentes

¿Por qué mi geovalla no salta en el emulador?

Las geovallas necesitan actualizaciones de ubicación a lo largo del tiempo: un solo salto puede no bastar. Reproduce una ruta que cruce el límite, usa una imagen con Google Play services y comprueba que la app tiene permiso de ubicación en segundo plano.

¿Cuánto tarda en saltar GEOFENCE_TRANSITION_DWELL?

Lo que marque el retardo que fijas con setLoiteringDelay() en la geovalla. En tu ruta de prueba, permanece dentro del radio más tiempo que ese retardo.

¿Puedo probar en un móvil real sin root?

Sí. Elige una app de ubicación simulada en las Opciones para desarrolladores; no hace falta root.

¿El código de producción debe rechazar ubicaciones simuladas?

Es una decisión de producto. Tolera las ubicaciones simuladas en las versiones de QA para que los testers puedan trabajar, y decide aparte qué hace producción con Location.isMock().

Para pruebas, desarrollo y uso personal. Respeta las condiciones de los servicios que utilices.