如何解决Flutter定位程序包无法在后台运行
我正在使用Flutter Location软件包来跟踪用户位置。它按预期工作。 当我最小化应用程序时,问题就来了,它停止提供位置数据。
即使应用程序最小化,我也想继续获取位置数据。
这就是我获取用户位置的方式。
Future<void> _listenLocation(store) async {
print('listen 1');
location.changeSettings(
accuracy: LocationAccuracy.high,distanceFilter: 20,interval: 5000);
_locationSubscription =
location.onLocationChanged.handleError((dynamic err) {
setState(() {
_error = err.code;
});
_locationSubscription.cancel();
}).listen((LocationData currentLocation) {
print('listen 2');
setState(() {
print('listen 3');
_error = null;
_location = currentLocation;
print('_location');
print(_location.speed);
print(currentLocation.speed);
});
});
}
我是新手,请帮忙。
解决方法
在某些Android版本上,常规位置软件包仍然有效。但是,在其他应用程序上,当应用程序在后台(不是最前端的应用程序)处于后台时,它将停止所有代码执行。
我对background_location软件包有不好的经验。 carp_background_location软件包对我来说似乎非常合适。它建立在更复杂的background_locator程序包的基础上,该程序包也可能运行良好。
我建议使用carp_background_location软件包。实现起来很简单。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。