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 :

Utilisation de la boussole


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Utilisation de la boussole
    Bonjour à toutes et à tous,

    Je voudrais utiliser la boussole de mon smartphone (Galaxy S 2) et j'ai écrit le code ci-après. Ça compile, ça s'exécute, mais ça n'affiche rien du tout. Avez-vous une idée de ce qui coince ?

    Merci de votre aide.

    Pierre

    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
    package com.example.senseurs;
     
    import java.util.List;
     
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Context;
    import android.widget.TextView;
     
    public class MainActivity extends Activity {
     
    	TextView AZ;
    	SensorEventListener sensorListener;
    	SensorManager sensorManager; //Le gestionnaire des capteurs
    	Sensor sensor; //Notre capteur de la boussole numérique
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		AZ = (TextView)findViewById(R.id.Azimut);
    		sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    		//Demander au gestionnaire de capteur de nous retourner les capteurs de type boussole
    		List<Sensor> sensors = 	sensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
         		sensor = sensors.get(0); //Notre listener sur le capteur de la boussole numérique
    		//Lier les évènements de la boussole numérique au listener
    		sensorManager.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
    		sensorListener = new SensorEventListener() {
    			@Override
    			public void onSensorChanged(SensorEvent event) {
    				float A = event.values[SensorManager.DATA_X];
    				AZ.setText(String.format("%02d", A));
    			}
     
    			@Override
    			public void onAccuracyChanged(Sensor sensor, int accuracy) {
    			}
    		};
     
    	}	
    }

  2. #2
    Jay
    Jay est déconnecté
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2002
    Messages : 124
    Par défaut
    Bonjour,

    Il y a un tutoriel sur developpez.net ;-)

    http://davy-leggieri.developpez.com/...tion-boussole/

    Cordialement,

  3. #3
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Citation Envoyé par Jay Voir le message
    Bonjour,

    Il y a un tutoriel sur developpez.net ;-)

    http://davy-leggieri.developpez.com/...tion-boussole/ ...
    Je me suis servi de ce tutoriel et je n'ai conservé que les fonctions relatives à la boussole étant donné que je ne cherche qu'à afficher la valeur de l'azimut.

    D'autres idées ?

    Merci de votre aide.

    Pierre

  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
    Bonjour,

    Bases toi sur ce tutoriel :
    http://mathias-seguy.developpez.com/...roid-capteurs/

    Ensuite si je reprends ton code, je ferais plutôt :
    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
    package com.example.senseurs;
     
    import java.util.List;
     
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Context;
    import android.widget.TextView;
     
    public class MainActivity extends Activity implements SensorEventListener {
     
    	TextView AZ;
    	SensorManager sensorManager; //Le gestionnaire des capteurs
    	Sensor sensor; //Notre capteur de la boussole numérique
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		AZ = (TextView)findViewById(R.id.Azimut);
    		sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    		//Demander au gestionnaire de capteur de nous retourner les capteurs de type boussole
    		List<Sensor> sensors = 	sensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
         		sensor = sensors.get(0); //Notre listener sur le capteur de la boussole numérique
    		//Lier les évènements de la boussole numérique au listener
    		sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
     
    	}	
     
     
     
    @Override
    			public void onSensorChanged(SensorEvent event) {
    				float A = event.values[SensorManager.DATA_X];
    				AZ.setText(String.format("%02d", A));
    			}
     
    			@Override
    			public void onAccuracyChanged(Sensor sensor, int accuracy) {
    			}
    }
    Assure toi en mode debug de la récupération de ton sensor et dis nous le contenue de la variable sensor.

  5. #5
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Merci Feanorin pour ces précisions et le lien pour utilisation des capteurs.

    Apparemment, je n'avait aucune erreur ??? Après avoir relancé Eclipse, le même code s'est mis à fonctionner. Eclipse m'a déjà joué des tours !!!
    J'évoque dans un autre fil des problèmes avec les capteurs d'environnement. Je vais voir si dans le tuto que tu proposes il y aurait une piste.

    Cordialement.

    Pierre

  6. #6
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Feanorin, dans le tuto que tu proposes, il y a un lien vers une application (My Sensors List) permettant de connaître les capteurs de son smartphone. A ma grande surprise, le Galaxy s 2 ne possède pas de capteur de température, d'humidité relative et de pression

    Cordialement.

    Pierre

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/06/2014, 16h31
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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