我正在尝试动态获取位置。但是某些东西不允许我使用诸如onLocationChanged()
或getLocation()
等的Location函数。我尝试了一切。有人知道这是怎么回事吗?
我尝试重新导入和更改pubspec.yaml。我什至尝试降低位置版本:
有些screenshots包括我的pubspec.yaml和其他相关内容
非常感谢您!
答案 0 :(得分:0)
这是针对可能遇到此问题的任何人的。我一直尝试了很多方法,直到找到这种方法,这要归功于一个善良的人在另一个扑通的Facebook小组中提供了帮助。 确保在pubspec.yaml中将位置更新为最新版本
dependencies:
location: ^2.3.5
然后将其更改为以下代码:
LocationData _currentLocation;
StreamSubscription<LocationData> _locationSubscription;
var _locationService = new Location();
String error;
void initState() {
super.initState();
initPlatformState();
_locationSubscription = _locationService
.onLocationChanged()
.listen((LocationData currentLocation) async {
setState(() {
_currentLocation = currentLocation;
});
});
}
void initPlatformState() async {
try {
_currentLocation = await _locationService.getLocation();
} on PlatformException catch (e) {
if (e.code == 'PERMISSION_DENIED') {
error = 'Permission denied';
}else if(e.code == "PERMISSION_DENIED_NEVER_ASK"){
error = 'Permission denied';
}
_currentLocation = null;
}
您可以将经度和纬度输入为
_currentLocation.longitude和_currentLocation.latitude
这些将返回双精度值。此外,还有更多可用选项 https://pub.dev/packages/location#-readme-tab-