我有同样的问题,但我注意到了一些事情。
观察 1
位置已关闭,现在我单击按钮来获取位置。它要求我打开位置,我打开它,它需要永远await location.getLocation();执行永远不会到达下一行代码。
观察 2 位置已打开,现在我单击按钮来获取位置。它不会要求打开位置,因为它已经打开,猜猜看,它会在 3-4 秒内获取用户位置
解决方案
_locationData = await Future.any([
location.getLocation(),
Future.delayed(Duration(seconds: 5), () => null),
]);
if (_locationData == null) {
_locationData = await location.getLocation();
}
Run Code Online (Sandbox Code Playgroud)
解释
我基本上保持了 5 秒的超时,如果我在 5 秒内没有找到位置,我会放弃它返回null,然后我再次点击它!& 有效
我在几个应用程序中观察到这个问题。只是getLocation()如果位置已经打开,该功能就可以正常工作。理想情况下,这不应该发生,插件或设备硬件一定存在一些深层问题。
希望这可以帮助!
PS:这个答案/sf/answers/4627600071/帮助我形成了上述解决方案。
| 归档时间: |
|
| 查看次数: |
5670 次 |
| 最近记录: |