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 :

Problème de localisation Android


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Par défaut Problème de localisation Android
    Bonjour, je me retrouve bloqué dans mon projet de triangulation via wifi, car je trouve que les résultats de distance obtenu en situation réelle ne sont pas concluant du tout, en effet, avec le code suivant, j'obtiens des résultats tel que 1.5*E-4 mètre, ce qui me parait complètement absurde. Me serais-je trompé ? Merci d'apporter un oeil neuf à mon travail.
    Cordialement, Isalus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    package com.example.smarttwo;
     
    import android.os.Bundle;
    import android.net.wifi.*;
    import android.app.Activity;
    import android.content.Context;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
     
    public class MainActivity extends Activity implements OnClickListener 
    {
    	private Button test;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) 
    	{
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
     
    		this.test = (Button)this.findViewById(R.id.button1);
    		this.test.setOnClickListener(this);
      	}
     
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) 
    	{
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
     
    	public void onClick(View v)
    	{
    		double testy;
    		testy = getSignalToMeter();
    		Toast.makeText(this, "Vous vous situez à:" + String.valueOf(testy) + "du point d'accès", Toast.LENGTH_SHORT).show();
    	}
     
    	public double getSignalToMeter()
    	{
    		WifiManager wifiManager = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
    		double linkSpeed = wifiManager.getConnectionInfo().getRssi();
    		//**? return LinkSpeed ?**\\ 
    		double exp = (27.55 - (20 * Math.log10(2400)) + (linkSpeed)) / 20.0;
                    //** 2400 = Access point's frequency, 2.4GHz **\\
    		return Math.pow(10.0, exp);
    	}

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    Par défaut
    bonjour,
    je sais pas exactement qu-est ce que tu veut faire,
    moi j'ai utilisée LocationManager pour récupéré la position latitude,longitude,altitude et accuracy ( précision)
    et avec la méthode : requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 0,
    Listener);
    pour agir au changement du position chaque minute
    voila j’espère que ça va t'aidé

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Par défaut Re:
    Mais cette solution marche comment ? Car mon but est de pouvoir localisé un appareil android connecté sur un réseau via uniquement le wifi, et sans triangulation je voyais pas tellement comment faire. Mais j'avoue avoir un peu de mal avec cette notion, il me semblait qu'il fallait récupérer la puissance du signal reçu depuis 3 points d'accès proche, ensuite calculer la distance en mètre entre les points d'accès et l'appareil, puis d'utiliser la règle de l'intersection de trois cercle pour déterminer la position de l'appareil sur une carte, en prenant en compte que la position des point d'accès a déjà été enregistré au préalable.

    Cela dit, si il existe une solution plus simple, je suis preneur.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    Par défaut
    Citation Envoyé par isalus Voir le message

    Cela dit, si il existe une solution plus simple, je suis preneur.

    pour utilisé la triangulation d’abord utilise le paramètre LocationManager.NETWORK_PROVIDER
    et c'est android qui fais le calcule et il te donne la "Location",
    Pour obtenir la dernière position connue de l'appareil, utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    LocationManager locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
    LocationProvider networkProvider = locationManager.getProvider(LocationManager.NETWORK_PROVIDER);
    Location lastKnownNetworkLocation = locationManager.getLastKnownLocation(networkProvider.getName());
    tu doit aussi ajouter une permission <uses-permission
    android:name="android.permission.ACCESS_COARSE_LOCATION" />

    enfin lit ces article tu va mieux comprendre

  5. #5
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Sachant que la dernière position (getLastKnownLocation) est à prendre avec de grosses pincettes.
    Elle peut être null, comme à des milliers de Km de la position actuelle.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    Par défaut
    Citation Envoyé par Hizin Voir le message
    Sachant que la dernière position (getLastKnownLocation) est à prendre avec de grosses pincettes.
    Elle peut être null, comme à des milliers de Km de la position actuelle.
    donc on est obligé de passé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 0,
    Listener);

    ou il y'à une autre solution ?

  7. #7
    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
    ou il y'à une autre solution ?
    Tu peux passer par la Location API de la Google Play Services si tu veux.
    http://developer.android.com/google/.../location.html

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Par défaut
    j'ai exactement le même projet à faire stp dis moi est ce que ta reussi ta localisation en utilisant la triangulation?

Discussions similaires

  1. Problème de localisation pour un composant asp .net
    Par soso78 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/02/2008, 15h19
  2. Problème de localisation d'un programme
    Par Paulinho dans le forum Langage
    Réponses: 1
    Dernier message: 04/01/2008, 11h59
  3. Problème de localisation(regional settings)
    Par ttornado dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/06/2007, 11h28
  4. [AXIS] Problème de localisation ?
    Par NoiBe dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 25/01/2007, 14h17
  5. Inclusion de fichiers / Problème de localisation
    Par Artusamak dans le forum Langage
    Réponses: 12
    Dernier message: 01/11/2006, 14h50

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