Flutter 颤振位置包requestService()永远不会返回
我有一个这样的函数。使用Flatter中的Location package,它将显示启用GPS的对话框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 =
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的对话框,之后它就停止了,未来永远不会返回,下一行永远不会执行(打印功能),只是清理并构建您的项目。这可能是一个构建问题。同样的代码对我来说很好。