Flutter: E / location_permissions: в плагине Geolocator нулевой объект - PullRequest
0 голосов
/ 28 апреля 2020

Я использую плагин Geolocator в проекте Flutter. Я добавил это Pubspecs.yaml файл также добавил разрешение в файле AndroidManifest.

Pubspecs.yaml

dependencies:
  http: ^0.12.0
  flutter:
    sdk: flutter
  shimmer: ^1.0.1
  font_awesome_flutter: ^8.8.1
  geocoder: ^0.2.1
  geolocator: ^5.3.1

Android Манифест

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Я использую SDK 28 - compileSdkVersion 28

Вот код для доступа к местоположению.

String _locationMessage = ""; 

  void _getCurrentLocation() async {
    print('location');
    final position = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
    print(position);

    setState(() {
      _locationMessage = "${position.latitude}, ${position.longitude}";
    });

  }

Когда я вызываю _getCurrentLocation () для кнопки, нажатой. Он показывает диалоговое окно, чтобы разрешить доступ к местоположению в приложении с тремя вариантами.

Allow all the time
Keep While-In-Use Access
Keep and Don't Ask Again

После выбора Сохранить во время использования он выдает следующее сообщение в консоли отладки.

E/location_permissions( 7592): Flutter result object is null.

Что я делаю не так?

Кроме того, я хочу знать, будет ли он спрашивать все время, когда мы пытаемся получить доступ к местоположению, или это будет один раз?

Редактировать

Если я выберу Разрешить все время , тогда мое приложение перестанет отвечать. Я имею в виду, если нажать кнопку, ничего не произойдет. Также мне нужно удалить его с телефона и запустить снова, после чего он начнет выдавать запрос на разрешение.

Редактировать 2

Одна странная вещь, которую я обнаружил. Если служба определения местоположения остановлена ​​/ не включена, то я получаю нулевое значение. Если я вручную включаю местоположение, то оно начинает давать мне местоположение.

...