web-dev-qa-db-fra.com

Fuse Location Provider est-il un bon choix?

Je développe une application pour laquelle je souhaite utiliser le fournisseur d'emplacement fusionné. Mais j'ai quelques doutes et quelques questions.

  1. Lorsque le GPS est désactivé et que la priorité est définie sur HIGH, cela signifie-t-il que le GPS sera automatiquement activé ou non?
  2. Puis-je définir UpdateLocation avec le fournisseur fusionné avec une priorité ÉLEVÉE à la demande pour économiser au moins un peu la batterie?
  3. Comment savoir quel fournisseur Fused utilise (s'agit-il d'un GPS ou d'un fournisseur de réseau)? Et enfin
  4. Le fournisseur Fused est-il vraiment le meilleur choix pour l'emplacement Android? Y at-il des points négatifs à ce sujet?

Quelle est votre opinion? Merci d'avance.

6
Atenica

Lorsque le GPS est désactivé et que la priorité est définie sur HIGH, cela signifie-t-il que le GPS sera automatiquement activé ou non? 

Non, il ne sera pas activé automatiquement. Mais si vous utilisez SettingsApi, Inviter une boîte de dialogue à l'utilisateur et donner des informations que GPS est doit être activé. Si l'utilisateur l'accepte, le GPS sera automatiquement activé. Vérifiez le SettingsApi

Comment savoir quel fournisseur Fused utilise (est-ce un GPS ou un fournisseur de réseau)

Si vous utilisez une API de fournisseur fusionnée avec SettingsApi correctement. Les réglages requis pour la demande d’emplacement en cours seront adéquats.

Le fournisseur Fused est-il vraiment le meilleur choix pour l'emplacement Android? Y at-il des points négatifs à ce sujet?

À mon avis, avant de fusionner un fournisseur, vous devez traiter directement avec les fournisseurs (Gps, réseau). Mais fusionné vous demande simplement "quelle est la précision des emplacements que vous souhaitez recevoir?"

8
blackkara

J'ai fait une application de test pour Gps, Wifi et Fuse Location Provider et je l'ai testée pendant 2 jours. C'est mieux car il utilise les deux et la plupart du temps c'est le plus précis. En outre, les données Gps sont des données très bruyantes qui provoquent un vacillement, pour résoudre ce filtre passe-bas ou d’autres filtres sont utilisés. Le filtre de Kalman est l’un des filtres les plus efficaces pour obtenir des résultats précis. FusedLocationProvider utilise ce filtre comme RotationVector, un capteur fusionné combinant matériel et logiciel. RotationVector utilise un accéléromètre, un gyroscope (si disponible) et un capteur de champ magnétique pour obtenir et filtrer les données de position et d'azimut.

Location.getProvider pour le GPS avec LocationManager renvoie "gps", Wifi renvoie "réseau" et FusedLocationProvider renvoie "fusionné". 

Lorsque le GPS est désactivé et que la priorité est définie sur HIGH, cela signifie-t-il que le GPS sera automatiquement activé ou non?

Toute autre fonction que "Battery Saving" active le Gps s'il est disponible. Ces paramètres disponibles sur mon téléphone Android 7.1.1. Le réglage de l'emplacement était différent sur les versions précédentes d'Android du côté de l'utilisateur. En tant que développeur pour activer l’utilisation du GPS, vous devez définir mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

PRIORITY_HIGH_ACCURACY - Utilisez ce paramètre pour demander l'emplacement le plus précis possible. Avec ce paramètre, les services de localisation sont plus susceptibles d'utiliser le GPS pour déterminer la position.

La priorité de réglage détermine également le niveau d'utilisation de la batterie.

Puis-je définir UpdateLocation avec le fournisseur fusionné avec une priorité ÉLEVÉE à la demande pour économiser au moins un peu la batterie?

Oui, vous pouvez définir un intervalle de demande d'emplacement en plus de la priorité.

mLocationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);

Comment savoir quel fournisseur Fused utilise (s'agit-il d'un GPS ou d'un fournisseur de réseau)?

Location from Wifi ne redevient jamais vrai pour Location.hasSpeed ​​(), mais Gps est presque toujours vrai si vous êtes à l'extérieur. De plus, location.getExtras () possède une balise satellites sur laquelle vous pouvez rechercher des satellites uniquement disponibles pour le GPS. La vitesse peut ne pas être correcte si vous marchez ou si j'ai lu jusqu'à présent, je n'ai pas essayé ceci en voiture, lorsque la vitesse est inférieure à 5 km/h, elle n'est pas très précise. Je veux dire que si vous utilisez FLP et que le dernier emplacement contient des informations de vitesse, c’est définitivement du Gps.

Y at-il des points négatifs à ce sujet?

À partir d'Android 8.0 et supérieur, il existe l ocation de récupération de l'emplacement si vous n'utilisez pas de service de premier plan ou n'obtenez pas d'emplacement au premier plan tant que l'application n'est pas en pause pour FLP et LocationManager.

De plus, FLP exige que GooglePlayService soit disponible sur le périphérique de l'utilisateur et il devrait être au-dessus d'une version particulière. 10 ou 11 en fonction de celui que vous utilisez. Cela peut poser problème si vous souhaitez publier vos applications sur un pays, par exemple la Chine, qui interdit les services Google Play.

4
Thracian

Comme ici https://developer.Android.com/training/location/index.html a déclaré très clairement que, les API de localisation des services Google Play sont préférées aux API de localisation du cadre Android (Android.location) en tant que manière d’ajouter une localisation à votre application. Si vous utilisez actuellement les API de localisation du framework Android, nous vous recommandons vivement de basculer sur les API de localisation des services Google Play dès que possible. J'espère donc que vous avez eu votre réponse.

4
Mahendra Chhimwal

Les réponses existantes ne disent pas pourquoi le FusedLocationProvider est meilleur.

Il est préférable que l'API fusionne à partir de plusieurs sources de données (capteurs, wifi, contexte, historique) de manière intelligente et économe en énergie. En outre, Google l'améliore constamment en ajoutant davantage de sources de données. Si votre application l'utilise, vous bénéficiez de ces améliorations gratuitement.

1
Mark Lu