Cómo implementar "un-dwell" en las geofencias android?

Tengo un problema para entender las geofencias de Androids.

Problema real : Utilicé los eventos Enter + Exit de googles geofence-api, pero en muchos dispositivos la señal es tan inexacta que salta dentro y fuera de una valla (los saltos son mayores que el radio 400m a menudo).

Solución planificada : Así que quiero usar Dwell para "suavizar" esto. Si la ubicación se mantiene dentro de una valla durante un minuto, habita sucede. Hasta aquí todo bien. Pero ¿cómo puedo detectar la licencia de una valla? Cuando utilizo Exit , varias Exit pueden ocurrir debido a esas salidas de señal. Lo que necesito es una especie de "undwell", cuando dejo la geofence por más de un minuto.

Quiero evitar la reimplementación de todo el Geofence con lógica personalizada que se registra en repetidas geo-ubicaciones repetidas y filtrar pequeños outliers.

Pregunta: ¿Hay algo en el geofence-api para lograr un "undwell"? ¿O hay una mejor práctica cómo comprobar si una Exit es una salida real?

  public long lastEnterTime = 0; public void initTimer(){ Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { if(lastEnterTime!=0 && System.currentTimeMillis() > lastEnterTime + 1000*60){ lastEnterTime = System.currentTimeMillis(); onRealEnter(); } } },0,1000); } public void onRealEnter(){ } public void onEnter(){ lastEnterTime = System.currentTimeMillis(); } public void onExit(){ lastEnterTime = 0; } 

En Google Geofences, el evento Enter se activa cada vez que se introduce una geofence, el evento Exit se activa cada vez que se cruza el boundry de Geofence. También Dwell evento desencadena cuando te quedas dentro de un geofence durante un intervalo de tiempo especificado.

En tu caso, si sigues saltando dentro y fuera de una geofencia en menos de un minuto, Dwell nunca sucederá.

Si ingresa una geofencia, ingresa eventos desencadenantes y permanece dentro durante un minuto o más, la interrupción sucederá y después de que ocurra la interrupción, si observas cualquier evento de salida , puedes utilizar ese evento de salida como una salida real.

Nota: También puede aumentar el radio de Geofence.

Espero que mi respuesta sea clara para usted. 🙂

Esto es sólo una idea, pero para cada área se pueden registrar dos geofences con diferentes radios. Regístrese para escuchar DWELL para la geofence con el radio más pequeño, y para EXIT para la otra.

  • ¿Cómo podemos cambiar el icono de la aplicación Android de forma dinámica en Android
  • Hacer referencia a una instancia de inclusión desde una clase interna
  • Cargando imágenes grandes sin OutOfMemoryError
  • NoSuchMethod con addAll en el adaptador?
  • Android Eclipse - No se puede ver la opción de procesamiento de anotaciones
  • Necesito recuperar una instancia de una actividad
  • Ant no pudo construir
  • Android KeyStore System - Guardar un KeyPair?
  • ¿Mezclar dos corrientes audio en una sola corriente audio en android?
  • Eclipse: "La importación java.io no se puede resolver"
  • JSONObject.toString: cómo no escapar de barras
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.