IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Géofencing (Localisation d'un utilisateur)


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 46
    Par défaut Géofencing (Localisation d'un utilisateur)
    Bonjour à tous,

    Dans le cadre d'une application, j'ai besoin d'actualiser et de récupérer les informations de localisation d'un utilisateur régulièrement, même une fois l'application arrêtée.

    En effet mon objectif est d'envoyer à intervalles réguliers la position de l'utilisateur à un serveur pour faire du Géofencing. Ainsi en fonction de la position de l'utilisateur reçue par le serveur, ce dernier va décider de lui envoyer ou non une notification (via Google Cloud Messaging).

    J'ai actuellement un service se chargeant de réaliser en arrière-plan le traitement voulu, seulement celui-ci ne fonctionne que si l'application est au premier plan.

    J'ai également regardé du côté de la méthode addProximityAlert() disponible sur une instance du LocationManager mais ceci ne réponds pas totalement à mon besoin (en effet cette méthode me permet d'envoyer la position de l'utilisateur au serveur lorsqu'il entre ou sort d'une zone précise mais uniquement à ce moment précis et non régulièrement comme je le souhaite).

    Voici donc ma question :

    Est-il possible, à intervalles réguliers, de récupérer la position de l'utilisateur et d'effectuer un appel réseau pour l'envoyer à un serveur, et ce quel que soit l'état de l'application (au premier plan, en arrière plan ou arrêtée) ? Si oui, comment ?

    En vous remerciant par avance de vos réponses,

    Nylwen

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Salut.

    Oui via les Services . Maintenant méfie toi car ce principe est un gros consommateur de batterie, il va falloir réguler la fréquence s des points saisies ainsi que l'envoie au serveur sinon le téléphone ne vas tenir qu'une heure.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 46
    Par défaut
    Bonjour,

    Merci pour ta réponse. J'ai donc approfondi l'approche concernant les services. Le problème que je rencontrais venait de la manière dont j'envoyais les coordonnées au serveur. J'utilise maintenant une URLConnection et mon service fonctionne correctement même en arrière plan.

    Concernant la consommation de batterie, quel est l'intervalle idéal pour avoir des données régulièrement sans consommer trop de batterie ? Actuellement j'effectue une actualisation toutes les 30 secondes, ce qui consomme 3 à 4 % de batterie par heure en ayant d'autres applications comme par exemple Facebook en arrière plan. Ceci est-il correct ou est-ce trop gourmand en ressources ?

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    ca me semble correct . Tout dépends du niveau de précision que tu souhaites .

    Après tu peux toujours proposer une fourchette a l'utilisateur dans les préférences. 30s- 5 min par exemple.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 46
    Par défaut
    D'accord merci, je marque le sujet comme résolu.

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    3 à 4% par heure me semble très très faible... (c'est ce que mon téléphone "mange" par heure sans aucune application active, sauf les synchronisations bien sur).

    J'imagine donc que tu conserve un WakeLock pour garder le téléphone éveillé... Donc le téléphone reste éveillé, et toutes les fonctionnalités réseau (et GPS) restent activées.

    Ce qui coûte cher c'est l'établissement de ces connexions (4G,3G+,3G,Edge,Fix GPS,WiFi scan,...).
    Par exemple, une appli qui "réveille" le téléphone toutes les 30s pour accéder au réseau va demandant 20x de batterie qu'une appli qui conserve le réseau ouvert et l'utilise toutes les 30s (cf Glympse qui n'est pas un gouffre en batterie et conserve GPS/Data activés).

    Par contre, si il y a un service d'arrière plan, il est obligatoire d'avoir une notification active pour pouvoir accéder à l'application d'un clic, et arrêter le service.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyé la localisation de l'utilisateur par SMS
    Par noussa17 dans le forum Android
    Réponses: 5
    Dernier message: 21/06/2013, 18h56
  2. Localisation de l'utilisateur par adresse IP
    Par helpcomm dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 29/10/2009, 10h21
  3. localisation géographique de l'utilisateur
    Par sliderman dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/07/2007, 16h03
  4. comptes utilisateurs stable et localiser
    Par myinformatique dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 25/04/2007, 17h57
  5. Localisation des utilisateurs ou membres du forum
    Par nicorem dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 23/11/2006, 10h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo