Comment Android obtient-il l'emplacement grossier?

15

J'ai lu que Android (et les systèmes de fonctionnement simmilar, par exemple iOS) obtiennent l'emplacement grossier actuel en utilisant la triangulation de tour WiFi ou GSM. J'ai l'idée de base mais j'ai des questions sur les détails.

  1. Android utilise-t-il normalement les deux méthodes ou préfère-t-il l'une et retombe-t-il sur l'autre?
  2. Communique-t-il avec un serveur pour obtenir la position via WiFi? (par exemple, envoi des SID des WiFis à un service Web)
  3. Communique-t-il avec le transporteur pour obtenir la position via les tours GSM ou est-ce fait sur l'appareil?
Tim Büthe
la source

Réponses:

8

Il appartient vraiment au développeur de mettre en œuvre le service de localisation. La description complète est disponible ici:

http://developer.android.com/guide/topics/location/obtaining-user-location.html

Le graphique environ 1/3 en bas de la page est assez utile pour voir ce qu'une application typique pourrait faire, mais encore une fois, c'est entièrement au développeur de l'application. Les types de services de localisation sont:

  • Correctif mis en cache
  • ID de cellule
  • Wifi
  • GPS
  • Emplacement maquette

Si l'application ne demande l'autorisation que pour un emplacement grossier, elle n'utilisera pas le GPS pour déterminer l'emplacement.

Pour répondre à vos questions...

  1. Cela dépend du développeur de l'application, mais dans la plupart des cas, la séquence sera mise en cache, Cell-ID, Wifi, GPS, dans cet ordre.
  2. Oui, après avoir acquis les ID de tour ou les SSID des signaux WiFi, ces données sont transmises à Google pour déterminer un emplacement approximatif.
  3. Non, Google a fait quelque chose de vraiment intelligent ici. Google possède sa propre base de données des emplacements des tours de téléphonie cellulaire et n'exige pas d'interaction avec le transporteur pour déterminer l'emplacement de la tour.

Cet article contient certains détails http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/

La version courte est que, lorsque vous utilisez une application comme Google Maps, l'application renvoie les informations d'identification de cellule actuelles avec votre position GPS actuelle. De cette façon, Google obtient un très bon échantillonnage des forces du signal à divers endroits et est capable de créer une base de données très riche.

JadeMason
la source
J'aime beaucoup votre réponse, mais je ne sais pas si vous avez raison sur la partie "c'est totalement au développeur". Pour autant que je sache, le développeur ne peut que décider d'obtenir l'emplacement fin ou grossier. En d'autres termes, il peut utiliser LocationManager.NETWORK_PROVIDER et / ou LocationManager.GPS_PROVIDER pour obtenir l'emplacement. Je pense qu'il ne peut pas décider ou même voir, si le Wifi ou le GSM est utilisé, non?
Tim Büthe
Dans le cas le plus courant, le développeur ne se souciera pas si les données proviennent du WiFi ou de Cell-ID, mais le développeur pourrait imposer des restrictions pour autoriser l'application à fonctionner uniquement lorsque le WiFi est désactivé ou que GPRS / GSM est désactivé. J'ai pris votre question pour signifier: "Existe-t-il une séquence standard que toutes les applications suivent" et la réponse est non. Cependant, en ce qui concerne spécifiquement la différence entre WiFi et Cell-ID, le développeur de l'application a une capacité limitée à demander spécifiquement un type de service de localisation.
JadeMason
1
Connaissez-vous un moyen de soumettre l'emplacement des hotspots Wi-Fi à leur base de données afin d'avoir une meilleure triangulation dans mon quartier / à l'intérieur? J'ai ouvert un fil pour cette question: android.stackexchange.com/questions/4715/…
Özgür
3

Une grande partie de cela est spécifique au transporteur et je ne suis pas un développeur, mais voici ce que je pourrais rassembler à partir des interwebs et des formations que j'ai eues dans les enquêtes sur les délits électroniques:

  1. Oui, mais cela dépend des priorités spécifiques des applications LBS qui sont définies par le développeur et peuvent être basées sur la précision actuelle du cours, les niveaux de puissance, les priorités prédéfinies ...
  2. Oui. Les opérateurs disposent de bases de données de localisation de stations de base Wifi propriétaires.
  3. Je ne peux pas parler spécifiquement d'Android, mais généralement cela va être de type opérateur et réseau (CDMA ou GSM). Les téléphones sont capables des deux mais il y a au moins quelques années, ils ont fait ce travail sur le combiné en raison des contraintes de bande passante de le faire ota.
Mat
la source
0

Votre téléphone sait quelles sont les tours les plus proches. Il existe une base de données de fournisseurs pour chaque pays dont l'id de la tour se trouve sur la carte. Cette base de données peut être suffisamment petite pour être préinstallée par votre fournisseur ou fournie par voie hertzienne. Comment un téléphone Android obtient ces données, je ne sais pas.

Barfieldmv
la source
-1

J'ai des réponses légèrement différentes pour # 3: l'appareil pourrait être utilisé si vous souhaitez utiliser la triangulation, mais vous devez utiliser le support si vous souhaitez faire correspondre le Cell-ID et la localisation de la tour gsm (ou cdma).

Rob
la source
mais est-ce une option qui peut être déterminée par un développeur d'application ou même un utilisateur final ou est-ce quelque chose qui est déterminé par le transporteur?
Matt
Il est obligatoire si vous souhaitez utiliser cette méthode pour localiser un appareil. L'utilisation de la triangulation ou d'une autre méthode vous permet de savoir où vous êtes par rapport à la position de l'antenne. Mais si vous ne connaissez pas le lat / long de l'antenne, vous ne pourrez pas obtenir votre position sur une carte. Je suis à la maison, je suis clair :)
Rob
@Rob Mais vous n'avez pas besoin du transporteur pour trouver l'emplacement de la tour. Chaque tour diffuse un identifiant unique, n'importe qui peut le récupérer et le cartographier indépendamment, sans interaction avec le transporteur. Google fait cela depuis un certain temps pour les tours de téléphonie cellulaire et les points d'accès WiFi. La voiture Google Streetview recueille les informations au fur et à mesure de son voyage, et les utilisateurs de Google Maps sur diverses plates-formes renvoient également des données anonymes correspondant aux correctifs GPS avec des identifiants d'antenne et wifi et la force. Cela est similaire à la façon dont Google récupère une grande partie de ses données de trafic dans les villes, il agrège la vitesse et les positions de nombreux utilisateurs de Maps.
GAThrawn
Êtes-vous sûr ? Semble surprenant. Par exemple, en Allemagne (et dans d'autres pays d'Europe), Google a été poursuivi pour avoir collecté des informations sur le wifi, il semble donc qu'il n'ait pas utilisé cette ressource. Pour la base de données GSM, si Google en possède une, elle devrait être accessible, et je n'en ai jamais entendu parler.
Rob
1
@Rob googlemobile.blogspot.com/2008/06/… "Le téléphone connaît l'ID de la tour cellulaire qu'il utilise actuellement. Si le téléphone est équipé d'un GPS, l'application Maps sur le téléphone envoie les coordonnées GPS ainsi que l'ID de la cellule à le serveur de localisation Google. " Je ne trouve pas le lien pour le moment, mais ils ont annoncé il y a quelque temps que l'application Blackberry Google Maps renvoyait le SSID et la force WiFi à proximité pour la même raison. Ce n'est pas la même chose que «l'erreur» de programmation dans le logiciel Streetview sur laquelle ils sont poursuivis qui a capturé plus de données WiFi que prévu.
GAThrawn