如何在颤动中回调谷歌位置服务对话框按钮点击?
Posted
技术标签:
【中文标题】如何在颤动中回调谷歌位置服务对话框按钮点击?【英文标题】:How to get call back of Google location service dialog button click's in flutter? 【发布时间】:2019-07-12 07:22:44 【问题描述】:我需要在我的 Flutter 应用中获取设备的当前位置。我添加的插件是 location: ^2.3.5 和 geolocator: ^5.0.1 以获取当前位置。 一切正常,但是当我的设备的 GPS 关闭(禁用)时,它会显示一个对话框,我已在图像中显示请检查它。我需要在按下确定按钮时回调,以便我可以获得当前位置并执行下一个代码线。如果你帮助我,我会感激你的。
这里有一些代码。
getCurrentLocation() async
try
await location.getLocation().then((locationData)
if(locationData!=null)
moveHomeWithLatLon(context,false,locationData.latitude.toString(),locationData.longitude.toString());
else
dialogInternetCheck(context, alert, "Please check location services on device");
);
on PlatformException catch (e)
if (e.code == 'PERMISSION_DENIED')
error = 'Permission denied';
dialogInternetCheck(context, alert, "Location services "+error);
【问题讨论】:
面临同样的问题。你找到解决办法了吗? 【参考方案1】:您应该在请求位置服务后查看服务状态结果。如果为真,则表示用户已提供访问权限。我提供了下面的例子
bool serviceStatusResult = await location.requestService();
print("Service status activated after request: $serviceStatusResult");
if (serviceStatusResult)
await _getCurrentLocation();
Future<bool> _getCurrentLocation() async
try
Location location = Location();
LocationData userLocation = await location.getLocation();
on PlatformException catch (e)
Log.info("Location fetch failed : $e.toString()");
return Future.value(true);
【讨论】:
我尝试了相同的代码,但无法执行 serviceStatusResult 的打印语句。请提出建议。 我再次检查了在 android 中运行代码并打印服务状态。以上是关于如何在颤动中回调谷歌位置服务对话框按钮点击?的主要内容,如果未能解决你的问题,请参考以下文章