2015-03-10 2 views
0

Je suis en train de récupérer Lieu avecA défaut de récupérer Lieu avec 4G

mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY); 

Quand je suis connecté à Internet sans fil, il n'y a pas de problème, mais quand je débranche Wifi et laissez-4G déterminer l'emplacement, je reçois pas gps fix ...

La chose est que je reçois Internet via 4G, donc je ne comprends pas pourquoi!

Une idée?

Répondre

3

Je pense que le problème ici est les services de localisation de Google, AKA "Network" emplacement, repose fortement sur les réseaux Wi-Fi pour déterminer l'emplacement. Obtenir un emplacement à partir du réseau cellulaire peut être floconneux, en particulier selon l'endroit où vous êtes. Si vous êtes dans le centre-ville d'une ville, il y a beaucoup de tours cellulaires autour, donc la triangulation peut mieux déterminer votre emplacement que si vous êtes dans une zone moins dense. Ce n'est pas vraiment explicitement indiqué dans la documentation, mais il semble que l'utilisation PRIORITY_BALANCED_POWER_ACCURACY utilise probablement une utilisation "passive" de la radio GPS, ce qui signifie qu'elle ne vous donnera des données de la radio GPS que si une autre application demande un rappel de localisation, donc vous vous retrouvez sur cette requête, et votre application ne se blâme pas pour la décharge de la batterie, même si vous obtenez les données de localisation.

Les états de documentation:

Entre ces deux extrêmes est un cas d'utilisation très courante, où applications veulent certainement recevoir des mises à jour à un spécifié intervalle , et peuvent les recevoir plus rapidement lorsqu'ils sont disponibles, mais veulent toujours un impact de faible puissance. Ces applications doivent prendre en compte PRIORITY_BALANCED_POWER_ACCURACY combiné avec un setFastestInterval (long) (par exemple 1 minute) plus rapide et un setInterval (long) plus lent (par exemple, 60 minutes). Ils seront affectés faute de pouvoir pour l'intervalle défini par setInterval (long), mais peuvent toujours recevoir des emplacements déclenchés par d'autres applications à un taux allant jusqu'à setFastestInterval (long). Ce style de requête est approprié pour de nombreuses applications prenant en charge l'emplacement, notamment l'utilisation en arrière-plan. Soyez attention aussi à étrangler setFastestInterval (long) si vous effectuez travail lourd après avoir reçu une mise à jour - comme l'utilisation du réseau .

Voir ici: http://developer.android.com/reference/com/google/android/gms/location/LocationRequest.html#setFastestInterval(long)

Voir ce poste ainsi: PRIORITY_LOW_POWER vs PRIORITY_BALANCED_POWER_ACCURACY for google play service v2