Я новичок в Dart-flutter, мне нужно написать приложение, которое может определять местоположение пользователя в фоновом режиме, например, через час.
я попытался обойти плагин геолокации и класс Timer, который работал нормально, но выбирает местоположение только один раз.
Мне нужно знать, есть ли какая-то работа в сервисе или лучший способ сделать это.
спасибо
class HomePage extends StatefulWidget{
static const timeout = const Duration(seconds: 5);
@override
State createState() => new HomePageState();
HomePage(){
startTimeout();
}
startTimeout()async {
final GeolocationResult result = await
Geolocation.isLocationOperational();
if(result.isSuccessful) {
return new Timer(timeout, handleTimeout);
}
else {
debugPrint(result.error.toString());
GeolocationResult res = await
Geolocation.requestLocationPermission(const LocationPermission(
android: LocationPermissionAndroid.fine,
ios: LocationPermissionIOS.always,
));
if(res.isSuccessful) {
new Timer.periodic(timeout,(Timer t)=> handleTimeout);
} else {
debugPrint(res.error.toString());
}
}
}
void handleTimeout(){
debugPrint("Print after 10 seconds");
Geolocation.currentLocation(accuracy:
LocationAccuracy.best).listen((result) {
if(result.isSuccessful) {
var posts = new postservice.Post();
var userid=100;
posts.sendLocation(result.location.latitude,result.location.longitude,userid);
}
});
}
}