Функция «Всегда разрешать местоположение» на Android

#android #flutter #permissions #geolocation #location

#Android #flutter #разрешения #геолокация #Расположение

Вопрос:

Мне нужно отслеживать гонщиков, и там нужно отслеживать их местоположение в фоновом режиме. Существует проблема с всплывающим сообщением о разрешении местоположения: есть только 3 варианта

Я бы хотел, чтобы в этом всплывающем окне была опция «Всегда разрешать»

Как я могу это сделать для Android?

Ответ №1:

На Android 10 (уровень API 29) и выше вы должны объявить разрешение ACCESS_BACKGROUND_LOCATION в манифесте вашего приложения, чтобы запросить фоновый доступ к местоположению во время выполнения. В более ранних версиях Android, когда ваше приложение получает доступ к местоположению на переднем плане, оно также автоматически получает доступ к фоновому местоположению.

Когда функция вашего приложения запрашивает фоновое местоположение на устройстве под управлением Android 10 (уровень API 29), диалоговое окно системных разрешений включает опцию с именем Allow all time. Если пользователь выбирает эту опцию, функция в вашем приложении получает фоновый доступ к местоположению.

Однако на Android 11 (уровень API 30) и выше в системном диалоговом окне нет опции Разрешить все время. Вместо этого пользователи должны включить фоновое местоположение на странице настроек.

шрифт: https://developer.android.com/training/location/permissions

Комментарии:

1. Есть ли способ обойти это в Android 11? Никто не будет заходить в настройки и менять свое местоположение.

2. Да, в конце страницы, которую я вам дал, есть что-то о том, чтобы не настраивать конфигурацию, а перенаправлять пользователя на страницу настроек.. И если я не ошибаюсь, этот плагин уже делает это: location_permissions. У меня было несколько проблем с плагинами фонового местоположения, единственным, который работал для меня, был этот: background_locator