颤振:无法使用位置功能

时间:2019-05-10 20:50:51

标签: dart flutter location

我正在尝试动态获取位置。但是某些东西不允许我使用诸如onLocationChanged()getLocation()等的Location函数。我尝试了一切。有人知道这是怎么回事吗?

我尝试重新导入和更改pubspec.yaml。我什至尝试降低位置版本:

有些screenshots包括我的pubspec.yaml和其他相关内容

非常感谢您!

1 个答案:

答案 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-