Flutter位置包requestService()永远不会返回。

问题描述 投票:1回答:1

我有一个这样的功能。使用flutter的Location包,它显示了启用GPS的对话框。

  Future<bool> _checkServiceStatus() async {
    final Location location = Location();
    bool serviceStatus = await location.serviceEnabled();
    if (!serviceStatus) {
      serviceStatus = await location.requestService();
      print('status -> $serviceStatus');
    }
    return serviceStatus;
  }

当它调用 await location.requestService()它显示了启用GPS的对话框,但之后它从未返回结果。打印() 功能。

我在这里做错了什么?

任何帮助将是非常感激! 先谢谢你了。

flutter dialog gps location future
1个回答
1
投票

我也有同样的问题。可以通过升级你的Flutter项目来解决,按照这个链接 https:/github.comflutterflutterwikiUpgrading-pre-1.12-Android-projects。


0
投票

试试这段代码来检查wather权限是否启用,服务是否启用,否则返回true,否则返回false。必须在android和ios项目中配置 "位置 "包相关配置。

Future<bool> checkServiceStatus() async {
  final Location location = Location();
  final locationPermission = await location.hasPermission();
  if (locationPermission == PermissionStatus.granted) {
    final locationServiceEnabled = await location.serviceEnabled();
    if (locationServiceEnabled == true) {
      return true;
    } else {
      final requestServiceStatus = await location.requestService();
      if (requestServiceStatus == true) {
        return true;
      } else {
        BotToast.showSimpleNotification(
            title: "Enable GPS to allow this feature");
        return false;
      }
   }
  } else {
    BotToast.showSimpleNotification(title: "Required location permission to allow this feature");
    return false;
  } 
}
© www.soinside.com 2019 - 2024. All rights reserved.