Я занимаюсь разработкой простого приложения с использованием плагина Flutter location
, с некоторым кодом на основе их образца кода :
var location = new Location();
try {
_currentLocation = await location.getLocation();
} on PlatformException catch (e) {
if (e.code == 'PERMISSION_DENIED') {
_locationMsg = 'Permission denied';
}
_currentLocation = null;
}
Как указано на странице плагина, я добавил ACCESS_FINE_LOCATION
до манифеста Android.
Проблема в том, что, когда я тестирую приложение на телефоне (с Android 9, если это актуально), даже если местоположение включено , и у меня естьСигнал GPS, выполнение приведенного выше кода приводит к следующему приглашению:
Подсказка гласит: «Для лучшего опыта включитеместоположение устройства, которое использует службу определения местоположения Google. ", с двумя кнопками: " НЕТ СПАСИБО " и " ОК ".
Это ужаснонедружелюбно: местоположение уже поступает из GPS, больше нет необходимости беспокоить пользователя.
Откуда возникла проблема, и как я могу избежать этого запроса?Я предпочитаю сообщать «неизвестное местоположение», чем отображать приглашение.
Редактировать : обратите внимание, что приглашение не связано с уведомлением пользователя о том, что местоположение будет использоваться, но это функция защиты конфиденциальности Google, которая, когда вы нажимаете OK, включает Точность местоположения Google, как описано ниже (скрыто глубоко в меню настроек):
Изображение выше: «Повышение точности определения местоположения», с кнопкой переключения.Точность определения местоположения Google. Служба определения местоположения Google повышает точность определения местоположения, используя Wi-Fi и мобильные сети для оценки вашего местоположения.Анонимные данные о местоположении будут отправляться в Google, когда ваше устройство включено.
При нажатии на первую подсказку это разрешается, и пользователь затем должен вручную отключить его, если он не хочет отправлять данные о своем местоположении.загуглить.Отключение его и попытка получить местоположение снова приводит к тому же самому запросу, так что это определенно не связано с предупреждением пользователя об использовании данных местоположения.Кроме того, если Google Location Accuracy активирована за до с помощью приложения, подсказка никогда не появляется в первую очередь, и, вероятно, поэтому большинство разработчиков никогда не замечают ее.
Я знаю, что возможнополучить данные о местоположении без , включая Google Location Accuracy, поскольку большинство приложений делают это.Но я не знаю, откуда появляется подсказка: это плагин для определения местоположения Flutter?То, что я использую Android 9 SDK?Или пример кода?