Эта функция должна инициировать запрос разрешения на определение местоположения:
Код: Выделить всё
_getUserLocation() {
if(context.read().state == null) {
Permission.locationWhenInUse.request().then((PermissionStatus permissionStatus) {
// If permission granted (permanently or not)...
if(permissionStatus != PermissionStatus.permanentlyDenied && permissionStatus != PermissionStatus.denied) {
setState(() {
locationDenied = false;
});
Geolocator.getCurrentPosition(
locationSettings: const LocationSettings(
accuracy: LocationAccuracy.high,
),
).then((Position position) {
LatLng newPosition = LatLng(position.latitude, position.longitude);
context.read().set(
location: newPosition,
);
setState(() {
userLocation = newPosition;
});
});
} else { // If permission denied (permanently or not)...
setState(() {
locationDenied = true;
});
}
});
} else {
/* More stuff */
}
}
Код: Выделить всё
locationDenied
Когда я захожу в настройки приложения (сразу после этого), я вижу следующее:
Разрешение на определение местоположения не разрешено.
Мой файл pupspec.yaml имеет следующий вид:
Код: Выделить всё
name: he_name_of_my_app
description: "The_name_of_my_app"
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.9+9
environment:
sdk: '>=3.4.0-268.0.dev
Подробнее здесь: [url]https://stackoverflow.com/questions/79033113/flutter-not-displaying-location-permission-request-on-production-android[/url]