getLocation method
获取定位信息
timeout:获取location超时时间
useLastKnownLocation:是否优先将上次的位置信息作为结果返回。如为false,则会获取当前最新值
Implementation
@override
Future<LocationInfo?> getLocation(
{int timeout = 6, bool useLastKnownLocation = false}) async {
if (!Platform.isAndroid) return null;
LocationInfo? location;
if (useLastKnownLocation) {
location = await getLastKnownLocation();
if (location?.latitude != null && location?.longitude != null) {
return location;
}
}
getLocationListener((LocationInfo locationInfo) {
location = locationInfo;
});
int count = timeout * 5; //一秒检测5次
while (count-- > 0 && location == null) {
await Future.delayed(const Duration(milliseconds: 200));
}
cancelLocationListener();
return location;
}