Cabe ao desenvolvedor saber como implementar o serviço de localização. A descrição completa está disponível aqui:
http://developer.android.com/guide/topics/location/obtaining-user-location.html
O gráfico sobre 1/3 da página é bastante útil para ver o que um aplicativo típico pode fazer, mas, novamente, depende totalmente do desenvolvedor do aplicativo. Os tipos de serviço de localização são:
- Correção em cache
- Cell-ID
- Wi-fi
- GPS
- Localização falsa
Se o aplicativo solicitar permissão apenas para localização aproximada, não usará o GPS para determinar a localização.
Para responder suas perguntas ...
- Depende do desenvolvedor do aplicativo individual, mas, na maioria dos casos, a sequência será Correção em cache, ID da célula, Wifi, GPS, nessa ordem.
- Sim, depois de adquirir os IDs ou SSIDs da torre dos sinais de WiFi, esses dados são transmitidos ao Google para determinar uma localização aproximada.
- Não, o Google fez algo realmente inteligente aqui. O Google possui seu próprio banco de dados de locais da torre de celular e não exige interação com a operadora para determinar o local da torre.
Este artigo contém alguns detalhes http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/
A versão curta é que, quando você usa um aplicativo como o Google Maps, o aplicativo envia as informações atuais de ID da célula de volta, juntamente com sua correção GPS atual. Dessa maneira, o Google obtém uma amostra muito boa da força do sinal em vários locais e é capaz de construir um banco de dados muito rico.