我遇到了这个问题,如果我尝试打电话:
Location location = Location();
LocationData data = await location.getLocation();
未来永远不会返回任何东西,它只是继续前进而不返回值。 这有点奇怪,因为在我的应用程序中我也有谷歌地图,他们毫无问题地找到我的位置,所以这不是 GPS/权限问题。
在 Android 上不存在此问题,仅在 iOS 上存在(目前针对 iOS 10.0)。
经过更多测试,我得出的结论是它确实有效,但只是第一次打开应用程序时,对该方法的所有其他请求都没有响应。
我一直在努力解决这个问题,我知道发生这种情况是因为模拟器上的位置已停止。所以你必须让模拟器位置移动。要移动模拟器的位置,请打开 X-code 模拟器 -> 在 MacBook 的顶角(苹果徽标旁边),单击功能 -> 单击位置 -> 选择自由方式驱动器
我设法解决了这个问题,如果发生这种情况,请检查在 onChangedPosition 侦听器处于活动状态时不要调用 .getLocation() 。
要在 iOS 中使用它,您必须在 Info.plist 中添加此权限:
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
我为此苦苦挣扎了一段时间。转到顶部栏的模拟器设置,单击“功能”==>“位置”,从各个位置中选择进行模拟:[无、自定义位置、城市跑步、城市自行车骑行、高速公路驾驶、Apple]。
如果 Info.plist 设置正确,并且 Android Manifest 正确,那么应该可以工作。