Как я могу контролировать интервал фонового обновления местоположения во флаттере? - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть приложение, которое отправляет местоположение в фоновом режиме, используя флаттер

Я использовал этот пример:

https://github.com/Lyokone/flutterlocation/wiki/Background-Location-Updates

это мой код, который работает в фоновом режиме:

    static void backgroundCallback(List<LocationData> locations) async {

    print('Sample app received data location: $locations');

    FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
    var initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher');
    var initializationSettingsIOS = IOSInitializationSettings();
    var initializationSettings = InitializationSettings(initializationSettingsAndroid, initializationSettingsIOS);
    flutterLocalNotificationsPlugin.initialize(initializationSettings);

    var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
        'location_update', 'Location Updates', 'You will receive location updates here',
        importance: Importance.Max, priority: Priority.High);
    var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
    var platformChannelSpecifics = new NotificationDetails(androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
    // await flutterLocalNotificationsPlugin.show(0, 'New Location Received !', "${locations[0].latitude}, ${locations[0].longitude}", platformChannelSpecifics); // $driver_id
  }

  void _registerListener() async {
    bool isLocationEnabled = await Location().requestService();
    if (isLocationEnabled == false) {
      Onclick(context);
    } else{
      bool _permission = await _locationService.requestPermission();
      print("Permission: $_permission");
      if (_permission) {
        bool statusBackgroundLocation = await _locationService.registerBackgroundLocation(backgroundCallback);
        print("statusBackgroundLocation: $statusBackgroundLocation");
      } else {
        print("Permission denied");
      }
    }
  }

  void _removeListener() async {

    await _locationService.removeBackgroundLocation();
  }

этот код отправляет мое местоположение каждые 5 секунд или каждые 3 секунды ...

могу ли я контролировать интервал для отправки местоположения ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...