Flutter-geolocator: Ajout de la prise en charge du suivi de l'emplacement en arrière-plan

Créé le 31 juil. 2018  ·  82Commentaires  ·  Source: Baseflow/flutter-geolocator

Commentaire le plus utile

J'étais également confronté à ce problème et j'ai développé mon propre plugin pour les mises à jour de l'emplacement en arrière-plan, le voici, flutter_background_location ,

Tous les 82 commentaires

C'est l'une des principales raisons pour lesquelles je n'ai pas basculé l'une de mes applications vers Flutter, le suivi de la localisation en arrière-plan est indispensable. Merci de garder cela sur la bonne voie !

J'étudie également cela. Vous souhaitez créer une application dans un environnement d'entreprise avec une exigence de suivi GPS en arrière-plan. flutter/plugins#656 (mentionné ci-dessus) n'est pas encore sur Pub et ne prend en charge que iOS.
Je m'abonnerai à ce fil pour toute mise à jour.

J'ai fini par écrire ma propre implémentation (sur Android, au moins), basée sur cet exemple Google qui s'exécute à la fermeture de l'application.

Je pousse les données de localisation vers firebase, donc je n'ai pas eu besoin d'envoyer quoi que ce soit sur le canal de méthode. Je télécharge directement sur Firebase en utilisant le code natif lorsqu'un résultat de localisation arrive. Cela signifie que je ne peux pas le généraliser pour aider ce plugin, mais cet exemple de dépôt pourrait être utile.

J'ai trouvé une solution pour généraliser votre méthode @aidandavis .
Dans ce package , tous les emplacements stockés dans sqlite.
Si votre service de premier plan peut accepter le fournisseur de magasin sqlite/firebase/... .
Avec MethodChannel, nous pouvons obtenir l'emplacement du fichier db et l'application Flutter peut le lire.

Mise à jour : l'exemple de Google n'empêche pas le mode Doze. Si l'appareil utilise le réseau et que le GPS peut également être tué avec votre service.

Mise à jour 2 : Ce fil de débordement de pile aide contre les choses d'économie de batterie des roms chinois et ajoute l'application à la liste protégée.
Ceci contre Doze

C'est certainement une façon de le faire. Le problème qui subsiste est de faire quelque chose avec les données pendant que l'application est en arrière-plan ou que le système choisit de la fermer.

En ce qui concerne Doze, il ne devrait s'appliquer que lorsque le téléphone est à l'arrêt (comme sur une table). De toute façon, il n'y a aucun point de suivi des mises à jour de localisation à ce stade - le dernier emplacement envoyé avant Doze serait toujours exact.

En plus de cela, le code Dart pourrait être intégré de la même manière implémenté dans alarm_manager_android. Le rappel Android appelle le code Dart sans que l'application ne soit en cours d'exécution.

Je vois que cette fonctionnalité a été supprimée du jalon 2.1.0. A-t-il été repoussé en veilleuse ? Mon projet en bénéficierait également grandement.

Les gars, une mise à jour à ce sujet ? Cette fonctionnalité peut ajouter des ailes à ce plugin. C'est indispensable.

Il convient peut-être également de noter que certains appareils ne peuvent pas obtenir de localisation GPS avec l'écran éteint. J'ai été bloqué sur celui-ci pendant un moment, et j'ai finalement trouvé que c'était dû au chipset de l'appareil. Il peut donc être utile de vérifier cela également, surtout s'il s'agit d'un appareil à batterie faible comme une montre.

@ibrierley Je ne suis pas sûr des appareils portables, mais tous les appareils (mobiles / tablettes) exécutant l'API> = 16 sont capables d'obtenir des mises à jour de localisation même lorsque l'écran est éteint. J'ai testé ça moi aussi.

Oui, j'ai principalement testé sur une montre Huawei 2, et j'ai lu un fil où il y avait un message avec je pense qu'un ingénieur Huawei (peut-être faux), disant qu'il était défini dans le chipset, donc ils ne pouvaient pas le réparer (Je posterai ici si je peux trouver le fil, mais je ne l'ai pas vu lors d'une recherche rapide).

J'ai fini par rendre l'écran noir, mais je déteste cette solution :) (mais cela fonctionne, mais je ne sais pas si cela économise autant de batterie, donc peut finir par forcer l'écran avec quelque chose qui s'affiche).

@ martijn00 Je me demande si le plugin Geofence ne donnera pas un coup de pouce à cette fonctionnalité. Je pense que l'exécution en arrière-plan serait cruciale et beaucoup d'entre nous s'y attendent. Dis-moi ce que tu en penses...

J'espère que vous pourrez bientôt ajouter le service BG :)

Salut!
Quel est l'état actuel de ce problème ? est-ce que quelqu'un y travaille? ou a été reporté?

Salut les gars, que pensez-vous de https://pub.dartlang.org/packages/flutter_background_geolocation
Ce plugin ne fournit-il pas ce qui est demandé ici ?

Salut les gars, que pensez-vous de https://pub.dartlang.org/packages/flutter_background_geolocation
Ce plugin ne fournit-il pas ce qui est demandé ici ?

C'est le cas, mais cela coûte 300 $ +

@christocracy , je pense que votre colis vaut chaque centime mais je suis juste trop pauvre atm :)

Salut, est-il possible de suivre l'emplacement en direct @christocracy gratuitement ?

J'ai hâte d'y être !

Pensez-vous qu'il sera possible de commencer à y travailler cette année?

Pensez-vous qu'il sera possible de commencer à y travailler cette année?

Tout le monde peut commencer à travailler immédiatement. Les contributions sont les bienvenues.

Les mainteneurs de ce projet font un assez bon travail en acceptant les changements entrants de la communauté.

Ok, donnez des ressources et placez dans le code par où commencer et j'essaie de faire de mon mieux : je pourrais passer quelques semaines pour le résoudre, mais je dois d'abord entrer dans Android plus profondément :( , je suis juste curieux si quelqu'un travaille dessus ;)

J'apprécie votre enthousiasme :1st_place_medal:

gimmie ressources, et placez dans le code par où commencer

Je crois que vous devrez toucher et comprendre tout ce plugin.


Cependant... Peu de problèmes de conception de haut niveau doivent être pris en compte avant de commencer à coder.

  1. Sur Android plus récent Android (API 26), le seul moyen d'obtenir des mises à jour de localisation de haute précision consiste à utiliser le service Foreground. Le dernier (Android Q) aura également une autorisation supplémentaire (pour obtenir l'emplacement en arrière-plan). Il faut donc aborder 3 comportements différents pour avoir une compatibilité avec : android pre 26, android 26 et android Q
  2. Pour utiliser le service Foreground, vous devez afficher la notification du système. Probablement chaque application voudra avoir une notification personnalisée.
  3. Compatibilité avec iOS. L'API Geolocator doit masquer autant que possible les différences entre les plates-formes.
  4. Le service de premier plan peut être arrêté et redémarré de la même manière que l'activité. Besoin de logique pour gérer cela. Flutter n'a pas de moyen facile de le faire. Le seul exemple que je connaisse est le plugin alarm_manager . Mais il bogue aussi et ne gère pas tous les cas. Je ne connais aucune bibliothèque Flutter open source qui le fasse correctement.

Dans notre cas, nous devons suivre plus de données pendant de longues périodes (localisation, Bluetooth, capteurs). Ainsi, faire en sorte que chaque plug-in gère séparément la logique de longue durée ne convient pas, car chaque plug-in aurait un service de premier plan distinct et l'utilisateur verrait trois notifications différentes.

J'espère que Google ajoutera cette fonctionnalité dans Flutter Out of the Box :p

Bonjour, ce sujet est-il clos ? J'ai aussi besoin de la géolocalisation en arrière-plan pour android et ios pour flutter ! Quelle est la meilleure bibliothèque pour cela ?

Juste pour ajouter mon +1 à cette demande de fonctionnalité. Pour certaines applications, il s'agit d'un écueil.
Ce serait incroyable de l'avoir.

+1 Serait si utile pour tant d'applications

C'est très nécessaire dans mon projet... J'ai été impressionné par celui que j'ai trouvé sur pub, mais 300USD ?

J'étais également confronté à ce problème et j'ai développé mon propre plugin pour les mises à jour de l'emplacement en arrière-plan, le voici, flutter_background_location ,

+1 J'attends aussi ça avec impatience.

+1 C'est vraiment nécessaire !

  • Cette fonctionnalité est nécessaire. Veuillez ajouter ceci !
  • 1

@milesgranger @Zeissus @shishirraven et autres

Si vous rencontrez ce problème, au lieu d'écrire +1 en commentaire, donnez un coup de pouce au problème, cela a plus de sens.

@ AlexCampos95 Pourquoi ne me demandez-vous pas à mon dépôt ?

Une solution pour le moment ?

Toute solution ?

quelconque?

Je ne sais pas si cela est utile, j'y travaillais il y a quelques mois.
https://github.com/akinsete/Flutter-Background-Location-Service

Essaye le.

Le jeu. 12 décembre 2019 à 12 h 05 Felix Hamborg [email protected]
a écrit:

quelconque?


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/Baseflow/flutter-geolocator/issues/53?email_source=notifications&email_token=AFKOFXJ2RA2FV2Q6LBZBUXTQYKDNZA5CNFSM4FM72VCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGXV2AQ#issuecomment-5
ou désabonnez-vous
https://github.com/notifications/unsubscribe-auth/AFKOFXLSVIXG74CNIBXLPQDQYKDNZANCNFSM4FM72VCA
.

La seule chose qui fonctionne vraiment pour moi est workmanager + geolocator . Si l'économie de batterie est désactivée pour votre application, cela fonctionnera en permanence même après le redémarrage du téléphone.

Bonjour Yegor Vialov

Cela semble être une bonne idée. Avez-vous un exemple de projet qui implémente
à la fois pour la surveillance de l'emplacement en arrière-plan ? Si vous le faites, pouvez-vous s'il vous plaît partager.

Merci

Le ven. 13 décembre 2019 à 1 h 52 Yegor Vialov [email protected]
a écrit:

La seule chose qui fonctionne vraiment pour moi, c'est Workmanager
https://pub.dev/packages/workmanager + géolocalisateur
https://pub.dev/packages/geolocator . Si l'économie de batterie est désactivée
pour votre application, cela fonctionnera en permanence même après le redémarrage du téléphone.


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/Baseflow/flutter-geolocator/issues/53?email_source=notifications&email_token=AFKOFXJ3L4B6SVPCWOUYBLLQYNENLA5CNFSM4FM72VCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGZKOXY#issuecomment-5
ou désabonnez-vous
https://github.com/notifications/unsubscribe-auth/AFKOFXOP3K36MV6LCE3E7HTQYNENLANCNFSM4FM72VCA
.

@akinsete , client haute disponibilité : https://github.com/estevez-dev/ha_client

Workmanager est incohérent dans iOS, vous n'avez aucun contrôle sur le moment où une tâche s'exécutera, il ne fonctionnera donc pas à des fins de mise à jour de l'emplacement en temps réel. Sur Android, la fréquence minimale est de 15 minutes, donc cela ne fonctionne pas aussi bien.

Nous avons vraiment besoin que cela soit implémenté dans Flutter Out of the Box.

Je n'ai pas beaucoup d'expérience avec Android, mais il semble qu'il y ait un appel distinct pour les mises à jour de localisation en arrière-plan par rapport à celles de premier plan (qui est actuellement utilisé dans ce plugin). Je ne sais pas comment cela fonctionnerait, mais j'imagine que nous voudrions en quelque sorte utiliser la fonction optimale en fonction de l'état dans lequel se trouve l'application.

Y a-t-il d'autres mises à jour à ce sujet ? Il s'agit d'une fonctionnalité assez clé pour un package de suivi de localisation et ce serait vraiment bien d'avoir s'il s'agit du package de localisation numéro 1 pour le flutter

Le plugin de @christocracy vaut bien l'argent et il répond très, très rapidement. Si l'emplacement de l'arrière-plan est important pour votre application, il s'agit d'un coût nominal.

@jamesdixon cette bibliothèque est géniale. Mais j'ai une application de gestionnaire de tâches où les tâches ont une notification de localisation. En utilisant geolocator + flutter_local_notifications, je peux déclencher une notification push lorsque l'application est au premier plan mais ne fonctionne pas lorsque l'application passe en arrière-plan. flutter_background_geolocation est trop pour mes besoins.

Peut-être que cette bibliothèque peut vous aider :
https://github.com/rekab-app/background_locator

Maaaaan vous trouvez un bijou ici c'est EXACTEMENT ce dont j'ai besoin le seul problème est qu'il manque de documentation

Peut-être que cette bibliothèque peut vous aider :
https://github.com/rekab-app/background_locator

Maaaaan vous trouvez un bijou ici c'est EXACTEMENT ce dont j'ai besoin le seul problème est qu'il manque de documentation

J'ai réussi à exécuter leur exemple... Cela fonctionne bien, parfois il semble qu'il arrête d'enregistrer les coordonnées lorsque je ferme l'application principale et qu'il exécute le service en arrière-plan... Mais je dois le tester à nouveau...

Faites-moi savoir si vous avez besoin d'aide pour l'exécuter :)

Cela fonctionne bien pour moi le seul problème est d'enregistrer sur le disque dans la fonction de rappel, le service n'enregistre pas le code natif des plugins et donc je ne peux pas faire d'appels natifs en utilisant path_provider par exemple, même si l'application est tuée l'Isolate enverra au ReceivePort à partir de la FlutterActivity tuée afin que rien n'écoute. Au redémarrage, je dois tuer l'isolat puis le recréer en utilisant un nouveau port mais je ne pense pas que ce soit la meilleure solution lol.
J'ai aussi trouvé cet exemple qui est assez similaire à ce que fait la bibliothèque (avoir un service qui exécute le code de fléchette avec une notification) mais ils enregistrent l'entrée des plugins dans le fichier Kotlin afin qu'ils puissent stocker des choses sur le disque
Si vous savez comment je peux récupérer le LatLng à partir de la fonction de rappel, ce serait génial🙏

@christocracy apprécierait si vous pouviez envoyer une clé de cette façon car j'ai essayé toutes les solutions ci-dessus et aucune ne semble fonctionner de manière cohérente (soit elles se terminent après la fermeture de l'application, soit elles arrêtent l'enregistrement). Je construis actuellement un tracker corona à la demande du directeur de mon hôpital local. Si vous pouvez m'aider, ce serait apprécié.

Je construis actuellement un tracker corona à la demande du directeur de mon hôpital local. Si vous pouvez m'aider, ce serait apprécié.

Vous voulez probablement bifurquer un projet existant sur Github au lieu de repartir de zéro

@RomanJos @Ashar2shahid https://corona-trace.github.io/

@christocracy C'est exactement ce que j'essayais de construire - la recherche de plugins de localisation d'arrière-plan pour flutter m'a conduit ici. Cependant le lien sur ce site : https://corona-trace.github.io/
pour le canal Slack ne fonctionne pas. Avez-vous un autre lien pour le mou?

J'ai parcouru le repo - cela m'épargnera beaucoup de travail, quand je trouverai les 300 $ de plus. Apple essaie de construire quelque chose de similaire en utilisant Bluetooth - ils sont plus préoccupés par la confidentialité - mais je pense que la confidentialité de l'emplacement est un petit prix à payer en ces temps, le construire comme ça, utiliser Google Takeout, etc. est exactement ce que j'avais à l'esprit.

@tatiblockchain , s'il vous plaît, venez sur mon dépôt pour en discuter, s'il vous plaît.

Pourquoi est-ce si important d'avoir une solution prête à l'emploi ?

@MazEbeid que voulez-vous dire exactement ?

J'aimerais pouvoir le soutenir, je n'ai tout simplement pas les connaissances nécessaires pour le construire. Je n'ai pas non plus trouvé le temps d'apprendre à le faire. N'hésitez pas à créer une pull-request ou peut-être pouvez-vous fournir une bonne ressource sur la façon de le faire afin que je puisse le construire (à part le tutoriel du site Flutter , j'ai lu cela plusieurs fois mais j'ai du mal à obtenir un bonne compréhension) ?

Je voulais dire pourquoi l'équipe Flutter n'ajoute pas un plugin agréable et maintenable pour la récupération de l'emplacement en arrière-plan.

J'ai utilisé ce plugin background_locator qui fonctionne bien mais pour le moment il ne prend pas en charge les mises à jour de localisation sur iOS lorsque l'application est terminée

J'ai rejoint le club sans aucun espoir =(

J'utilise actuellement le package background_locator . Ce n'est pas parfait mais fonctionne

background_locator c'est sympa... mais ça a ses problèmes.

Je suis très intéressé à trouver quelque chose de plus robuste (j'espère que ceci ici) et cela ne me dérangerait pas d'avoir quelques bonnes pratiques pour stocker ces valeurs alors que, par exemple, l'application est en arrière-plan ou l'écran est éteint.

J'ai constaté que de nombreuses options disponibles ne sont pas Isolate-Safe et causent des problèmes tels que des données corrompues ou même simplement des erreurs d'accès, ce qui n'est pas idéal s'il s'agit d'une solution d'arrière-plan.

@Flavsditz Je prévois actuellement de développer un plugin natif pour le suivi de bg. Je vais probablement suivre l'emplacement en affichant une bulle de discussion (je me trompe peut-être, mais je pense qu'Android nécessite un service de premier plan pour maintenir le service en vie) sur Android. Mais je n'ai aucune idée du suivi sur iOS.

J'adorerais utiliser ce plugin, mais en raison de l'indisponibilité des mises à jour de localisation en arrière-plan, je suis obligé de choisir autre chose qui peut fournir cette fonctionnalité même si je dois payer plus de 300 $. Cette fonctionnalité est très importante pour toute application avec géolocalisation.

J'adorerais utiliser ce plugin, mais en raison de l'indisponibilité des mises à jour de localisation en arrière-plan, je suis obligé de choisir autre chose qui peut fournir cette fonctionnalité même si je dois payer plus de 300 $. Cette fonctionnalité est très importante pour toute application avec géolocalisation.

Avez-vous essayé ce plugin ? Il a été récemment mis à jour et devrait prendre en charge la localisation en arrière-plan.
https://github.com/rekab-app/background_locator

@mvanbeusekom Avez-vous l'intention d'inclure cela ? Ce serait incroyablement cool. Beaucoup de gens ont besoin de ça.

@ndhbr oui, j'ai l'intention de prendre en charge la récupération des mises à jour de position en arrière-plan. Cependant, je ne trouve pas vraiment le temps de le faire pour le moment. Chaque fois que je commence quelque chose d'autre (plus important) apparaît. Maintenant, par exemple, iOS 14 est publié, ce qui introduit une nouvelle API pour les autorisations de localisation qui doit être prise en charge pour que les utilisateurs puissent utiliser le géolocalisateur sur iOS 14.

Donc, si vous vous sentez à l'aise, ce serait formidable si vous pouviez commencer, peut-être des aspérités. L'idée que j'ai est de fournir aux développeurs une option pour enregistrer une méthode de rappel Dart qui sera exécutée (uniquement) lorsque l'application est en arrière-plan à chaque fois qu'une mise à jour de position arrive (comme décrit dans cet article ). Cela aiderait déjà beaucoup si nous pouvions faire un plan. Divisez le travail qui doit être fait en plus petits morceaux.

@mvanbeusekom
Ah d'accord, merci pour la mise à jour. Je peux comprendre cela. Merci pour vos efforts.

Je connais déjà l'article presque par cœur, mais ce n'est quand même pas facile.

J'essaie depuis une semaine de faire en sorte que background_locator fonctionne de manière stable (souvent ne fonctionne pas sur Android) et ils fonctionnent avec des isolats. Un isolat démarre et obtient l'emplacement en arrière-plan. Ma procédure actuelle consiste à remplir un fichier octet par octet dans le rappel et à lire le fichier à partir du dernier octet dans l'interface utilisateur. Malheureusement, Android n'écrit l'emplacement dans le rappel que toutes les quelques minutes et je perds donc presque tous les emplacements. Sous iOS la procédure fonctionne bien.

C'est peut-être aussi une source d'inspiration.

Existe-t-il un autre moyen STABLE de gérer l'emplacement en arrière-plan ?

Et êtes-vous décidé à ajouter cette fonctionnalité à l'avenir ?

Existe-t-il un autre moyen STABLE de gérer l'emplacement en arrière-plan ?

Et êtes-vous décidé à ajouter cette fonctionnalité à l'avenir ?

https://github.com/rekab-app/background_locator fonctionne bien.

@TheMisir Merci. Êtes-vous sûr que cela fonctionne bien et que cela convient à l'application de production ? Il y a aussi des rapports de plantage ici https://github.com/rekab-app/background_locator/issues

@TheMisir Merci. Êtes-vous sûr que cela fonctionne bien et que cela convient à l'application de production ? Il y a aussi des rapports de plantage ici https://github.com/rekab-app/background_locator/issues

Je n'avais pas de choix. Nous l'utilisons donc en production. Oui, cela ne fonctionne pas parfaitement, mais cela fonctionne s'il est configuré correctement. (Parfois, des problèmes sur nos projets étaient causés par une mauvaise configuration).

Existe-t-il un autre moyen STABLE de gérer l'emplacement en arrière-plan ?

Et êtes-vous décidé à ajouter cette fonctionnalité à l'avenir ?

Oui, parce que j'avais un besoin urgent de la fonction en production, j'ai acheté une licence pour https://www.transistorsoft.com/shop/products/flutter-background-geolocation. Je l'utilise depuis 1 mois en production et il fonctionne bien jusqu'à présent.

Une fois j'ajoute :
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
à mon manifeste (trouvé dans l'exemple background_locator), je pourrais utiliser :
var userPosition = await Geolocator().getCurrentPosition();
en arrière-plan en utilisant background_fetch : ^0.6.0.

Donc c'est seulement toutes les 15 minutes mais ça marche plutôt bien.
Je vais essayer background_locator maintenant

Une fois j'ajoute :
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
à mon manifeste (trouvé dans l'exemple background_locator), je pourrais utiliser :
var userPosition = await Geolocator().getCurrentPosition();
en arrière-plan en utilisant background_fetch : ^0.6.0.

Donc c'est seulement toutes les 15 minutes mais ça marche plutôt bien.
Je vais essayer background_locator maintenant

J'ai rencontré ce problème sur background_locator https://github.com/rekab-app/background_locator/issues/167

Et puis je suis passé à ce package https://github.com/transistorsoft/flutter_background_geolocation ce package est génial

@Dereumaux-Adrien merci pour la mise à jour ! J'apprécie beaucoup. 15 minutes me suffisent. Vais l'essayer..

@bhanuka96 En effet, cela fonctionne parfaitement mais comme je ne sais pas encore si mon projet a une quelconque valeur commerciale je n'ai pas l'intention de dépenser de l'argent en plugins.
J'apprécie déjà transistorsoft car background_fetch vient également d'eux.
Si le projet parvient à donner un bon résultat, je suppose que je passerai à flutter_background_geolocation plus tard.

TLDR pour les personnes qui découvrent ce fil

Geolocator ne prend pas encore entièrement en charge la géolocalisation en arrière-plan.

Les solutions sont les suivantes

Si vous pouvez payer, https://pub.dev/packages/flutter_background_geolocation fonctionne facilement et bien.
Si vous pouvez passer du temps dessus, vous devriez réussir à faire fonctionner https://pub.dev/packages/background_locator (je n'y arrivais pas encore).
Si vous voulez commencer rapidement, que vous ne pouvez pas encore dépenser d'argent et que vous êtes d'accord avec une vérification des antécédents toutes les 15 minutes : https://pub.dev/packages/background_fetch avec https://pub.dev/packages/geolocator avec changements manifestes écrits ici

Vous pouvez également utiliser WorkManager comme détaillé ici : https://medium.com/@pierre.sabot/how-to-fetch-user-location-in-background-with-flutter-e3494021bdf5

Ça se limite toujours à 15 minutes pour Android, mais c'est une autre approche, simple API.

J'ai utilisé https://pub.dev/packages/background_location pour suivre l'emplacement de l'utilisateur en arrière-plan et l'enregistrer dans firestore

De plus, je me demande si vous ne souhaitez pas vraiment qu'un rappel soit appelé lorsqu'un emplacement arrive en arrière-plan (afin que vous puissiez traiter l'emplacement ou le protéger quelque part afin qu'il puisse être traité lorsque l'application revient au premier plan) .

Je ne sais pas comment cela est géré pour le moment dans le plugin location . Mais c'est comme ça que je pensais m'y prendre pour le geolocator .

D'ailleurs ce n'est pas vraiment respectueux de se référer aux autres plugins.

Vous pouvez également utiliser WorkManager comme détaillé ici : https://medium.com/@pierre.sabot/how-to-fetch-user-location-in-background-with-flutter-e3494021bdf5

Ça se limite toujours à 15 minutes pour Android, mais c'est une autre approche, simple API.

J'ai essayé d'obtenir la position périodiquement toutes les 15 minutes et tout fonctionne bien.
Mais en définissant un événement périodique toutes les heures, je ne peux pas obtenir la position. Le gestionnaire de travaux fonctionne (la notification apparaît) mais je n'arrive pas à obtenir l'emplacement.
Avez-vous essayé de définir un événement périodique ? Si oui, combien de temps ?

@mvanbeusekom dois-je ouvrir un problème séparé pour prendre en charge les mises à jour de localisation lorsque l'application est au premier plan ?
Par premier plan, je veux dire que l'application est en cours d'exécution mais que l'utilisateur a appuyé sur le bouton d'accueil, est passé à une autre application ou que l'écran a été éteint. Pour Android, nous devons ajouter un service de premier plan qui affiche une notification persistante avertissant l'utilisateur que l'application utilise sa position. Pour iOS, une icône verte s'affiche dans la barre d'état (ceci est autorisé sous l'autorisation NSLocationWhenInUsage).
Je pense que la prise en charge de cela serait beaucoup plus facile et résoudrait de nombreux cas d'utilisation où les mises à jour réelles de l'emplacement en arrière-plan ne sont pas nécessaires. (L'accès à la localisation en arrière-plan signifie que l'application est lancée si elle est terminée lorsque les mises à jour de localisation sont récupérées et que le service en arrière-plan peut s'exécuter indépendamment de l'application).

Cette page vous a été utile?
0 / 5 - 0 notes