如何等待用户许可才能在Geolocator中获取位置坐标以加载Google地图?

时间:2019-12-27 03:35:48

标签: android firebase flutter

我正在尝试通过获取当前用户位置来加载Google地图。

当我第一次注册(firebase)时,它将要求位置许可,然后只会发生此异常。 (我登录时没有此权限,但在第一次注册之后)。

这是我在pubspec.yaml中的Geolocator和位置插件

geolocator: ^4.0.2 version
location: ^2.0.0

enter image description here

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

作为官方示例,您应该首先检查权限。像这样

  Widget build(BuildContext context) {
   return FutureBuilder<GeolocationStatus>(
    future: Geolocator().checkGeolocationPermissionStatus(),
    builder:
        (BuildContext context, AsyncSnapshot<GeolocationStatus> snapshot) {
      if (!snapshot.hasData) {
        return const Center(child: CircularProgressIndicator());
      }

      if (snapshot.data == GeolocationStatus.denied) {
        return const PlaceholderWidget('Access to location denied',
            'Allow access to the location services for this App using the device settings.');
      }

      return Center(.... your code)

您可以在https://github.com/Baseflow/flutter-geolocator/tree/develop/example

中找到完整的示例