Bug in Android Geofence Código de ejemplo? ¿Puede alguien confirmar?

No estoy seguro de si se trata de un error con el nuevo código de ejemplo de Android GeoFence o mi comprensión de lo que se supone que está mal. La aplicación de ejemplo crea geofences pero no alerta cuando geofence se rompe. Si alguien quiere darle una oportunidad y confirmar, puede descargar el código de ejemplo de aquí:

https://developer.android.com/training/location/geofencing.html

Esto es lo que esperaba que la aplicación de ejemplo hiciera:

  • Configurar 2 geofences diferentes. En mi caso, escogí 2 puntos a una milla aparte entrando en su respectivo lat / long. También fijo el radio a 250m.
  • Conduje a cada uno de esos 2 lugares uno tras otro y asumí que una notificación emergería indicando que el geofence se ha roto.

En este caso, no se registraron notificaciones ni mensajes de registro, lo que significa que "ReceiveTransitionsIntentService" nunca se llamó. Una observación es que cuando me dirijo a la primera ubicación y luego agregar una nueva geofence justo en esa ubicación , la notificación se disparó de inmediato , pero cualquier otra ubicación (geofence) que establecer y conducir a, no pasa nada.

¿Alguna idea de por qué? ¿Es correcto mi entendimiento acerca de la funcionalidad de la aplicación de ejemplo?

¿Tengo que hacer algo además de lo que está en el código de ejemplo para recibir una alerta cuando rompo el geofence mientras conduciendo? ¿Es el monitoreo de geofence separado de crear geofences, lo que me falta aquí?

Apreciamos altamente cualquier entrada, estamos muy impacientes utilizar esto en nuestra aplicación pero ahora mismo estamos pegados.

Gracias, Torri.

En primer lugar, su comprensión de la funcionalidad de la aplicación es correcta. Cada vez que ingresa / deja una de sus geofencias, le muestra que en una notificación (siempre está actualizando la misma notificación btw, así que mantenga un ojo hacia fuera para que o puede que se pierda uno de los eventos).

En segundo lugar, tenga cuidado porque Geofence 1, de forma predeterminada, sólo está desencadenando eventos ENTRAR . Así que si usted deja esa área geofence después de estar dentro de usted no recibirá una notificación para eso! Puede cambiar este comportamiento en la creación del objeto mUIGeofence1 en MainActivity.java.

Por último, como con todas las cosas relacionadas con la ubicación, esta API no es perfecta .. De mis pruebas hasta ahora nunca he visto arrancar el GPS, por lo que cuando fuera parece bastante depender de las ubicaciones de la red que fácilmente no puede caer bajo un geofence del radio de 500m incluso si usted está parado derecho en el medio de él. Durante una de las presentaciones en IO, Reto Meier mencionó que la API sería lo suficientemente inteligente como para manejar la batería de drenaje de la mejor manera posible, por lo que sólo se enciende GPS cuando el usuario comienza a acercarse a una geofence – que tiene sentido – pero esto nunca parece suceder por desgracia.

El API nunca "encenderá" el GPS. Tienes que arrancar el GPS tú mismo.

también asegúrese de que ha establecido su radio lo suficientemente grande. I woudl sugget haciendo 1000 sólo para ver si funciona. Todavía estoy jugando con él, pero el código de ejemplo aquí funciona bien:

¿Cómo utilizo la API de Geofencing de Android?

He probado el código de ejemplo GeofenceDetection y está funcionando. Estoy utilizando sólo Wifi y GPS, y establecer mi radio a 15 metros. Cuando caminé a la región, no es inmediatamente mostrar la notificación. Después de unos segundos, recibí la notificación "enter". Además, incluso si estoy parado todavía en la región, a veces me notificaron que estoy saliendo de la región. Hace que la aplicación se sienta como si estuviera saltando dentro y fuera de una región.

Escribí una aplicación de prueba que usaba la ubicación de servicios de Google Play y las API de Geofence. Utilicé la API de ubicación para obtener la ubicación actual a una velocidad de 1 segundo. Cuando fijé mi geofence exhibí la distancia de la localización actual al centro del geofence, actualizado cada vez que la posición puesta al día.

Justo después de que se establezca la geofencia, obtengo el evento de entrada. Yo claro que el evento y salir a caminar bien fuera del radio geofence. La distancia mostrada se demora como loco. Tardé unos tres minutos para que la posición me alcanzara. Un retraso similar ocurrió en el camino de regreso a casa.

Pity Play Services es una fuente cerrada, me encantaría entender los límites de su algoritmo.

Al principio pensé lo mismo. Es porque el radio está en Metros, y pensé que sería en KMS / Miles. Así que había introducido valores muy pequeños. Luego, después de unos cuantos experimentos, descubrí eso. Introducido valores más grandes y funcionó como encanto en mi Nexus 5

  • Recibir una notificación (vía BroadcastReceiver) cuando se inicia / detiene el GPS (o servicios de ubicación)
  • Emulador de Android se reinicia cuando se envía una ubicación falsa
  • CellID y LAC / PSC para celdas vecinas 3G en Android
  • ¿Cómo algunas aplicaciones (wechat) ignoran la ubicación falsa y luego detectan la verdadera?
  • Android Advertencia: JAR no existe o no contiene recursos
  • Google maps containsLocation en android
  • ¿ICS Android habilita los gps de forma programática?
  • Proveedores de ubicación de Android - ¿Proveedor de GPS o de red?
  • LocationListener.onLocationChanged en el emulador
  • Obtener un total de "Zonas / Zonas" en las que actualmente estoy, basado en la ubicación actual
  • Cómo actualizar dinámicamente un elemento de superposición específico
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.