Это действительно зависит от разработчика, как реализовать сервис определения местоположения. Полное описание доступно здесь:
http://developer.android.com/guide/topics/location/obtaining-user-location.html
График примерно 1/3 вниз по странице довольно полезен, чтобы увидеть, что может делать типичное приложение, но опять же, это полностью зависит от разработчика приложения. Типы услуг определения местоположения:
- Кэшированное исправление
- Cell-ID
- Wi-Fi
- GPS
- Макет Местоположение
Если приложение запрашивает разрешение только для грубого местоположения, оно не будет использовать GPS для определения местоположения.
Чтобы ответить на ваши вопросы ...
- Это зависит от конкретного разработчика приложения, но в большинстве случаев последовательность будет Cached Fix, Cell-ID, Wifi, GPS, в этом порядке.
- Да, после получения идентификаторов башен или идентификаторов SSID сигналов WiFi эти данные передаются в Google для определения приблизительного местоположения.
- Нет, Google сделал кое-что действительно умное здесь. Google имеет собственную базу данных местоположений вышек сотовой связи и не требует взаимодействия с оператором связи для определения местоположения вышек.
В этой статье есть некоторые подробности http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/
Короткая версия заключается в том, что при использовании приложения, такого как Google Maps, приложение будет отправлять текущую информацию Cell-ID обратно вместе с вашим текущим исправлением GPS. Таким образом, Google получает очень хорошую выборку уровней сигнала в разных местах и может создать очень богатую базу данных.