establecer 2 alertas de proximidad con la misma emisión

Creo una alerta de proximidad de esta manera

private void setProximityAlert(float radius, double lat, double lng, String place) { long expiration = -1; LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Intent intent = new Intent(TREASURE_PROXIMITY_ALERT); intent.putExtra("lat", lat); intent.putExtra("lng", lng); intent.putExtra("place", place); PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), -1, intent, 0); locManager.addProximityAlert(lat, lng, radius, expiration, pendingIntent); } 

y en mi actividad registré al receptor de esta manera

  IntentFilter intentFilter = new IntentFilter(TREASURE_PROXIMITY_ALERT); registerReceiver(new ProximityIntentReceiver(), intentFilter); setProximityAlert(10, 45.150344, 9.999815, "POINT1"); 

y mi receptor de difusión se llama correctamente. Así que ahora, quiero agregar otra alerta de proximidad, ¿es posible? Quiero que el mismo receptor de boadcast sea llamado por 2 alertas de proximidad. Yo hice esto:

  IntentFilter intentFilter1 = new IntentFilter(TREASURE_PROXIMITY_ALERT1); registerReceiver(new ProximityIntentReceiver(), intentFilter1); setProximityAlert(200f, 45.143848, 10.039741, "POINT2"); 

pero no funciona, no pasa nada. Estoy realmente en él y me preguntaba si es el camino correcto. Mi intención es gatillo 2 alertas, una cuando GPS obtener la posición POINT1 y otro en la posición POINT2. Cualquier ayuda es bienvenida.

Usted necesita usar cualquier setAction único para que el sistema considere los dos intentos diferentes, ya que de lo contrario tenderá a reutilizar el primero.

Tengo este código:

 Intent intent = new Intent(this,PlacesProximityHandlerService.class); intent.setAction("foo"+objPlace.getId()); intent.putExtra(Poi._ID, objPlace.getId()); intent.putExtra(Poi.LAT, objPlace.getLat()); intent.putExtra(Poi.LON, objPlace.getLon()); PendingIntent sender = PendingIntent.getService(this,0, intent, 0); LocationUtils.addProximity(this, objPlace.getLat(),objPlace.getLon(), objPlace.getError(), -1,sender); 

También tenga en cuenta que la alerta de proximidad funciona un poco difícil.

El usuario entra en la zona ZONE1 en función de la precisión de la señal y el radio que ha establecido. Se emite la emisión para ingresar = true ZONE1. Si ingresa a otra zona ZONE2 que se superpone con la zona actual, no obtiene la alerta como sigue en ZONE1. Debe salir de la ZONE1, por lo que la emisión se disparará de nuevo con enter = false. Así que una vez que salió de ZONE1, si llega ZONE2, disparará la emisión entrando = true ZONE2.

He probado y funciona muy bien. Grab Location Spoofer aplicación gratuita del mercado y simular la ubicación del teléfono. También es necesario activar las ubicaciones simuladas en la configuración del teléfono. Y añada permiso adicional a su aplicación:

 <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 

Lo que yo haría, establecer mi ubicación lejos de mí, probablemente Groenlandia, a continuación, establecer la posición en una zona que desencadena ZONE1, la emisión debe disparar. A continuación, vuelva a establecer mi ubicación a Greeland, y establecer la posición que desencadena ZONE2, la emisión debe disparar.

La bandera entrante se puede obtener de los extras de la intención

 Bundle b = intent.getExtras(); Boolean entering = (Boolean) b.get(android.location.LocationManager.KEY_PROXIMITY_ENTERING); 

He utilizado los códigos anteriores para configurar alertas de proximidad para 100 POI y todo funciona bien.

  • Cómo obtener coordenadas de una dirección en android
  • ¿Por qué el registro de las actualizaciones de ubicación activa los contactos para actualizar?
  • ¿Cómo calcular un radio alrededor de un punto en un MapView de Android?
  • Activar el GPS en los dispositivos enraizados
  • Analizar datos NMEA en Android 2.3
  • Q. Ubicación GPS de Android
  • Problema de Android para averiguar la última corrección GPS reciente
  • No se puede resolver Manifest.permission.ACCESS_FINE_LOCATION
  • ¿Por qué el GPS no funciona en ciertos dispositivos si la pantalla está apagada?
  • Desactivar el GPS mediante programación cuando salgo de mi programa
  • Las actualizaciones GPS no se apagan después de cerrar la aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.