Как ACCESS_BACKGROUND_LOCATION, представленный в Android Q, влияет на API Geofence? - PullRequest
1 голос
/ 16 апреля 2019

Чтобы использовать Geofence API, пользователь должен предоставить приложению ACCESS_FINE_LOCATION.Это место считается опасным и может быть отменено в любое время;после того как это разрешение отозвано, приложение не может запрашивать обновления геозоны.

Как разрешение ACCESS_BACKGROUND_LOCATION вписывается в эту картинку?Мы точно знаем, что это разрешение также опасно и может быть отозвано в любое время .Означает ли это, что если мы хотим регистрировать некоторые IntentService, которые будут вызываться каждый раз, когда происходит изменение геозоны, мы также должны убедиться, что пользователь предоставил разрешение ACCESS_BACKGROUND_LOCATION?Или нам нужно использовать это разрешение только , если мы пытаемся получить текущее местоположение в нашей собственной справочной службе / BroadcastReceiver?

Причина, по которой я задаю этот вопрос, заключается в том, что документация кажетсячтобы быть немного расплывчатым в этом пункте: документация, описывающая Q Developer Preview , упоминает, что геозона является одним из случаев использования для фонового поиска местоположения, в то время как страница API геозонирования не делаетупомяните ACCESS_BACKGROUND_LOCATION среди своих требований.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

My думаю раздел " Перерегистрировать геозоны только при необходимости ":

Зарегистрированные геозоны хранятся в процессе com.google.process.location, принадлежащем пакету com.google.android.gms.

будет означать, что это на самом деле не нужно, поскольку com.google.process.location должен быть тем, кто получает данные о местоположении (то есть тот, кому нужно запросить разрешение ACCESS_BACKGROUND_LOCATION).

При этом, следуя этой логике ACCESS_FINE_LOCATION разрешение также не должно быть необходимо. Тот факт, что это необходимо, может быть вызван двумя причинами (я не знаю реальной причины):

  • что при регистрации геозоны или при получении местоположения уведомления проверяется
  • или что это разрешение проверено Службами Google Play, чтобы запретить приложению обходить отсутствие разрешения на местоположение, используя Службы Play в качестве прокси-сервера для получения информации.

Для меня второе предположение имеет больше смысла, а это означает, что даже если технически приложение не понадобится (процесс получения местоположения называется Play Service), оно требуется по соображениям конфиденциальности / безопасности.

Следуя этой логике, Google должен (будет?) Также применять ACCESS_BACKGROUND_LOCATION как для обеспечения конфиденциальности / безопасности пользователя, так и для снижения потребления батареи.

0 голосов
/ 11 июня 2019

В бета-версии 4 добавление геозоны, когда ACCESS_BACKGROUND_LOCATION не предоставлено, даже когда приложение полностью находится на переднем плане, завершается неудачно с кодом состояния 13 («ошибка»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...