BroadcastReceiver pour l'emplacement
Je sais BroadcastReceiver montres pour le texte, téléphone, événements, etc... mais pouvez-vous l'exécutez LocationServices des services et de l'événement en fonction de l'Emplacement?
Par exemple, vous êtes à proximité d'un certain point GPS et le téléphone vous avertit.
Ici, vous allez developer.android.com/reference/android/location/...
OriginalL'auteur ProNeticas | 2011-03-09
Vous devez vous connecter pour publier un commentaire.
Je pense que ce que vous recherchez est quelque chose comme cela. Il existe une version de
LocationManager.requestLocationUpdates()
qui prend unPendingIntent
comme paramètre, et cette Intention pourrait être utilisé pour déclencher uneBroadcastReceiver
. Ce code va enregistrer une coutume de diffusion à l'incendie avec de l'emplacement des mises à jour.Ensuite vous avez juste à enregistrer votre
BroadcastReceiver
avec la même Intention à l'action, et il recevra l'emplacement des mises à jour pour le traitement. Et, bien sûr, garder cettePendingIntent
autour de parce que vous aurez besoin d'appelermanager.removeUpdates(launchIntent)
à un certain point!Note Finale:
Car il semble que vous essayez de mettre en œuvre régulière de l'emplacement des mises à jour pendant que votre application n'est pas au premier plan, gardez cela à l'esprit. Sauf si vous voulez que votre application de marque comme un tueur de batterie, être extrêmement prudent avec la façon d'implémenter cette fonctionnalité.
Vous voulez réduire considérablement la fréquence jusqu'à l'emplacement des mises à jour avec un grand minTime ou minDistance paramètre pour permettre le service de localisation de repos. Cette fonctionnalité doit être fixée à un utilisateur contrôlée, de préférence de sorte qu'ils peuvent activer/désactiver votre application de suivi de position en arrière-plan.
Espère que ça Aide!
Pas de problème. Si cette réponse finit par résoudre votre problème, n'hésitez pas à l'accepter. Cheers!
Je vais, j'ai voulu tester en premier 😉
Merci pour cette. J'ai essayé de le faire avec un service et le alert manager avec pas de chance. C'est exactement ce que je cherchais.
OriginalL'auteur Devunwired
Cette question est de plus de 2 ans, mais il est maintenant très facile et batterie de manière efficace de faire cela. Le concept est appelé barrières géographiques. Vous pouvez en apprendre plus en détail ci-dessous:
http://developer.android.com/training/location/geofencing.html
si vous voulez mettre à jour en fonction de l'emplacement de changement, ont un coup d'oeil à developers.google.com/android/reference/com/google/android/gms/...
Merci @serv-inc, j'ai utilisé extactly. Et pour économiser la batterie, je ne suis qu'à la journalisation des endroits avec une précision inférieure à 40 m, j'ai aussi ajouté une variable statique appelée emplacement précédent, si le nouvel emplacement se trouve à plus de 40 m à partir de l'emplacement précédent, je me connecte, d'autre pas.
OriginalL'auteur tasomaniac