Является ли сервис Google Play своего рода «обходом» авторизации моих приложений?

В информации тега говорится, что это «библиотека, используемая приложениями Google и многими сторонними приложениями для определения местоположения и социальных функций».

Означает ли это, что если я откажусь предоставить приложению местоположение, указанное приложение все равно сможет получить информацию о моем местоположении через Сервисы Google Play?

Я не разработчик Android, но приложения обычно могут обмениваться информацией через намерения, поэтому не требуется явного разрешения. Исходя из этого, ваши сомнения могут определенно быть реальностью.

Ответы (2)

Насколько я понимаю, есть два способа получить текущее местоположение с точки зрения разработчика Android:

  1. API местоположения платформы Android: android.locationэто «старый способ», и разработчикам рекомендуется адаптировать новый API:

  2. 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.

Что ж, вы как бы подтверждаете мои опасения... Если я отказываю приложению в разрешении, а оно есть в Google Play Services, ваши цитаты как бы говорят, что они действуют независимо, и поэтому обход действительно существует. Если нет, то не могли бы вы уточнить, как? В любом случае спасибо, что нашли время, чтобы найти это в документации SDK.
Насколько я могу судить, это все еще для каждого приложения. Вызов разрешения запроса исходит из приложения, так как библиотека для вызова Play Services все еще находится в контексте приложения. Хотя я еще не подтвердил это тестированием... Я мог неправильно интерпретировать документы?