Est Fusionnée Fournisseur d'Emplacement bon choix?
Je développe une application où je veux utiliser Fusionné Fournisseur d'Emplacement. Mais j'ai quelques doutes, et un couple de questions.
- Lorsque le GPS est désactivé et j'ai mis une priorité ÉLEVÉE, cela signifie que le GPS sera automatiquement activé ou pas?
- Puis-je définir UpdateLocation avec Fusionné fournisseur avec une priorité ÉLEVÉE à la demande pour économiser la batterie, au moins un peu?
- Comment puis-je savoir ce Fusionné fournisseur de l'aide (s'agit-il d'un GPS ou d'un fournisseur de réseau)?
Et enfin - Est Fusionnée fournisseur de vraiment le meilleur choix pour android emplacement? Existe-il des points négatifs à ce sujet?
Quelle est votre opinion?
Merci à l'avance.
- oui, FusedLocationApi est le meilleur pour android, il s'agit d'améliorer l'emplacement des mises à jour avec une grande précision et d'économie de la batterie. Cochez cette pour plus de détails - developers.google.com/android/reference/com/google/android/gms/...
- Je vous remercie beaucoup.
- Il peut être le meilleur mais cela ne signifie rien. Elle suce toujours, parce que personne à partir de Google se soucie des changements de position de routeurs WLAN qui peut entraîner dans des endroits qui sont à des milliers de kilomètres à partir du réel, et il semble que Google préfère WLAN emplacement, même si le GPS a valeurs correctes...
Vous devez vous connecter pour publier un commentaire.
Non, il ne sera pas activé automatiquement. Mais si vous utilisez SettingsApi, invite à une boîte de dialogue à l'utilisateur et donne des informations que le GPS doit être activé. Si l'utilisateur l'accepte, le gps sera automatiquement actif. De vérifier la SettingsApi
Si vous utilisez des fusibles api fournisseur avec SettingsApi correctement. Il fera adéquate les paramètres requis pour l'emplacement actuel de la demande.
À mon avis, avant de fusionnés fournisseur vous devez traiter directement avec les fournisseurs(Gps, réseau), Mais fusionné juste vous demande, "comment les emplacements exacts vous voulez recevoir ?"
PRIORITY_HIGH_ACCURACY
et les paramètres appropriés.Comme ici https://developer.android.com/training/location/index.html a déclaré très clairement que, les Google Play services de localisation Api sont privilégiées par rapport à l'Android cadre d'emplacement (Api android.emplacement) comme un moyen d'ajouter de la localisation de votre application. Si vous êtes actuellement en utilisant l'Android cadre emplacement Api, vous êtes fortement encouragés à passer à la Google Play services de localisation Api dès que possible. Donc j'espère que vous avez votre réponse.
J'ai fait une application de test pour le Gps, le Wifi et la Fondue Fournisseur d'Emplacement et de le tester pendant 2 jours. Il vaut mieux, car il utilise deux d'entre eux et la plupart du temps, c'est l'une des plus précis. Aussi, les données Gps est très bruyant données qui provoque la dérive, pour résoudre ce filtre passe-bas ou d'autres filtres sont utilisés. L'une des plus réussies de filtre utilisé pour obtenir des résultats plus précis est le Filtre de Kalman. FusedLocationProvider utilisez ce filtre de même que RotationVector qui est une fondue capteur combine le matériel et les logiciels. RotationVector utilise l'accéléromètre, le gyroscope(si disponible), et le détecteur de champ magnétique pour obtenir et filtre positition et l'azimut de données.
Emplacement.getProvider pour Gps avec LocationManager renvoie "gps", Wifi renvoie "réseau", et FusedLocationProvider renvoie "fusionné".
Rien d'autre que "Économie de Batterie" allume le Gps si disponible. Cette configuration disponible sur mon Android 7.1.1 téléphone. Configuration pour l'emplacement était différente sur les versions précédentes d'Android sur l'utilisateur. En tant que développeur pour permettre l'utilisation de Gps, vous devez définir
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
La définition de la Priorité détermine également l'utilisation de la batterie le niveau de trop.
Oui, vous pouvez définir l'intervalle de demande de localisation dans plus de priorité.
Emplacement de la Wifi ne retourne jamais vrai pour l'Emplacement.hasSpeed() mais le Gps renvoie presque toujours vrai si vous êtes à l'extérieur. Aussi l'emplacement.getExtras() sont des satellites de la balise que vous pouvez vérifier pour les satellites qui n'est disponible que pour le Gps. La vitesse peut ne pas être correcte si vous êtes à pied ou aussi loin que j'ai lu jusqu'à présent, je n'ai pas essayé cette voiture, quand la vitesse de moins de 5 km/h c'est pas très précis. Je veux dire, si vous utilisez FLP et dernier emplacement de données contient des info vitesse, c'est certainement à partir de Gps.
Comme de Android 8.0 et au-dessus il y a location de la récupération de limite si vous n'utilisez pas un de premier plan de Service ou d'obtenir de l'emplacement sur le premier plan tandis que l'application n'est pas en pause pour les deux FLP et LocationManager.
Aussi FLP nécessite GooglePlayService d'être disponible sur le périphérique de l'utilisateur et il devrait être au-dessus d'une version particulière. 10 ou 11 selon celui que vous utilisez. Cela peut être un problème si vous souhaitez publier vos applications sur un pays, par exemple la Chine, qui interdit à Google Play Services.
Les questions /réponses ne dis pas pourquoi la FusedLocationProvider est mieux.
C'est mieux car l'API fusibles à partir de plusieurs sources de données (capteurs, le wifi, le contexte, l'histoire) dans une intelligent et batterie de façon économique. Aussi, Google est toujours à l'améliorer par l'ajout de plusieurs sources de données. Si votre application utilise, vous obtenez ces améliorations pour gratuit.