Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振位置包requestService()永远不会返回_Flutter_Dialog_Gps_Location_Future - Fatal编程技术网

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

Flutter 颤振位置包requestService()永远不会返回,flutter,dialog,gps,location,future,Flutter,Dialog,Gps,Location,Future,我有一个这样的函数。使用Flatter中的Location package,它将显示启用GPS的对话框 Future<bool> _checkServiceStatus() async { final Location location = Location(); bool serviceStatus = await location.serviceEnabled(); if (!serviceStatus) { serviceStatus =

我有一个这样的函数。使用Flatter中的Location package,它将显示启用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;
  }
Future\u checkServiceStatus()异步{
最终位置=位置();
bool serviceStatus=等待位置。servicenabled();
如果(!serviceStatus){
serviceStatus=等待位置。requestService();
打印('status->$serviceStatus');
}
返回服务状态;
}
当它的调用等待location.requestService()时,它会显示启用GPS的对话框,但此后它将不会返回结果。 甚至它也没有执行print()函数

我做错了什么


任何帮助都将不胜感激!提前谢谢。

我也有同样的问题。这可以通过升级您的颤振项目来解决,请按照此链接进行操作

尝试此代码以检查是否启用了权限、是否启用了服务,然后返回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;
  } 
}
Future checkServiceStatus()异步{
最终位置=位置();
final locationPermission=等待位置。hasPermission();
if(locationPermission==PermissionStatus.grated){
final locationServiceEnabled=等待位置。serviceEnabled();
如果(locationServiceEnabled==true){
返回true;
}否则{
final requestServiceStatus=等待位置。requestService();
如果(requestServiceStatus==true){
返回true;
}否则{
BotToast.showSimpleNotification(
标题:“启用GPS以允许此功能”);
返回false;
}
}
}否则{
BotToast.showSimpleNotification(标题:“允许此功能所需的位置权限”);
返回false;
} 
}

打印出
服务状态
。如果代码未执行,可能是
?代码已执行,我肯定知道,因为它显示GPS对话框。我不熟悉该插件。似乎您需要设置权限?是的,它显示了启用我的GPS的对话框,之后它就停止了,未来永远不会返回,下一行永远不会执行(打印功能),只是清理并构建您的项目。这可能是一个构建问题。同样的代码对我来说很好。