【问题标题】:In flutter how i can check if location is enabled?在颤振中,我如何检查位置是否已启用?
【发布时间】:2019-01-06 08:29:08
【问题描述】:

当用户在没有启用位置的情况下进入谷歌地图页面时遇到问题,地图不会更新,所以我想检查用户是否事先启用了位置,所以我需要一个函数,如果启用位置,则返回 true,否则返回 false。

【问题讨论】:

    标签: flutter


    【解决方案1】:

    使用permission handler plugin

    ServiceStatus serviceStatus = await PermissionHandler().checkServiceStatus(PermissionGroup.location);
    bool enabled = (serviceStatus == ServiceStatus.enabled);
    

    您还可以说明请求权限的理由(仅限 Android)

    bool isShown = await PermissionHandler().shouldShowRequestPermissionRationale(PermissionGroup.location);
    

    Location Plugin

    var location = Location();
    bool enabled = await location.serviceEnabled();
    

    并请求启用它

    bool gotEnabled = await location.requestService();
    

    【讨论】:

      【解决方案2】:

      对于像我一样遇到这个 stackoverflow 问题的人,PermissionHandler 包已经进行了更改和更新,旧的解决方案现在无效。

      你可以检查定位服务是否开启:

      if (await Permission.locationWhenInUse.serviceStatus.isEnabled) {
        // Use location.
      }
      

      【讨论】:

        【解决方案3】:

        你可以安装permission handler plugin然后使用它:

        final PermissionStatus permission = await PermissionHandler()
                        .checkPermissionStatus(PermissionGroup.location);
        

        【讨论】:

        猜你喜欢
        • 2019-01-21
        • 2020-09-19
        • 1970-01-01
        • 2022-01-01
        • 2019-05-26
        • 2021-12-27
        • 2021-12-02
        • 1970-01-01
        • 2018-09-17
        相关资源
        最近更新 更多