Android Studio 2.6
Мне нужно проверить, включена ли служба определения местоположения.
Я использую плагин флаттера: geolocator 5.3.1 https://pub.dev/packages/geolocator
В моем приложении Flutter в AndroidManifest. xml:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
в info.plist:
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access to location when in the background.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app needs access to location when open and in the background.</string>
Фрагмент:
@override
Widget build(BuildContext context) {
Future<bool> enableLocationService = isLocationServiceEnable();
if (enableLocationService == true) {
_logger.e('enableLocationService = true');
} else {
_logger.e('enableLocationService = false');
}
и вот способ проверки:
import 'package:geolocator/geolocator.dart';
Future<bool> isLocationServiceEnable() async {
GeolocationStatus geolocationStatus =
await Geolocator().checkGeolocationPermissionStatus();
return (geolocationStatus == GeolocationStatus.denied);
}
На Android устройстве я включаю географическое местоположение. Кроме того, я предоставил разрешения на определение местоположения в моем приложении.
Но метод isLocationServiceEnable
ВСЕГДА возвращает false.
geolocationStatus
всегда = GeolocationStatus.denied