В информации тега google-play-services говорится, что это «библиотека, используемая приложениями Google и многими сторонними приложениями для определения местоположения и социальных функций».
Означает ли это, что если я откажусь предоставить приложению местоположение, указанное приложение все равно сможет получить информацию о моем местоположении через Сервисы Google Play?
Насколько я понимаю, есть два способа получить текущее местоположение с точки зрения разработчика Android:
API местоположения платформы Android: android.location
это «старый способ», и разработчикам рекомендуется адаптировать новый API:
API определения местоположения сервисов Google Play.
Чтобы получить доступ к первым, приложение должно запросить разрешения на их использование:
Если не указано иное, для всех методов API определения местоположения требуются разрешения ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION.
Для доступа к последним разработчикам по-прежнему приходится запрашивать те же разрешения :
Приложения, использующие службы определения местоположения, должны запрашивать разрешения на определение местоположения. Android предлагает два разрешения на определение местоположения: ACCESS_COARSE_LOCATION и ACCESS_FINE_LOCATION. Выбранное вами разрешение определяет точность местоположения, возвращаемого API. Если вы укажете ACCESS_COARSE_LOCATION, API вернет местоположение с точностью, приблизительно эквивалентной городскому кварталу.
Итак, нет, сервис не предлагает способа обойти проверки разрешений. Оба способа требуют одинаковых разрешений.
Нет, служба/библиотеки по-прежнему требуют запросов разрешений, как и все остальное.
Дополнительную информацию см. в документации SDK Play Services . Но некоторые соответствующие выдержки:
...После того как вы объявили API, которые хотите использовать... убедитесь, что у вас есть необходимые разрешения перед вызовом API.
...
Если вызов возвращает false, это означает, что разрешения не предоставлены, и вы должны использовать
requestPermissions
их для запроса.... когда вы звоните
connect()
, сервисы Google Play подтверждают, что у него есть все необходимые разрешения. ...connect()
терпит неудачу, когда отсутствуют какие-либо группы разрешений, необходимые для самих сервисов Google Play.
Гримуар