Realmente depende del desarrollador cómo implementar el servicio de ubicación. La descripción completa está disponible aquí:
http://developer.android.com/guide/topics/location/obtaining-user-location.html
El gráfico sobre 1/3 de la página es bastante útil para ver lo que podría hacer una aplicación típica, pero nuevamente, depende completamente del desarrollador de la aplicación. Los tipos de servicio de ubicación son:
- Arreglo en caché
- ID de celda
- Wifi
- GPS
- Ubicación simulacro
Si la aplicación solicita permiso solo para ubicación aproximada, no utilizará el GPS para determinar la ubicación.
Para responder tu pregunta...
- Depende del desarrollador de la aplicación individual, pero en la mayoría de los casos la secuencia será Arreglo en caché, Cell-ID, Wifi, GPS, en ese orden.
- Sí, después de adquirir las ID de torre o SSID de las señales WiFi, esos datos se transmiten a Google para determinar una ubicación aproximada.
- No, Google ha hecho algo realmente inteligente aquí. Google tiene su propia base de datos de ubicaciones de torres celulares, y no requiere una interacción con el operador para determinar la ubicación de la torre.
Este artículo tiene algunos detalles http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/
La versión corta es que, cuando utiliza una aplicación como Google Maps, la aplicación enviará la información actual de ID de celda junto con su corrección GPS actual. De esta manera, Google obtiene una muestra muy buena de las intensidades de señal en varias ubicaciones, y puede construir una base de datos muy rica.