• Home
  • Youzik
  • Papystreaming
  • Darknet
  • Libertyland
  • Cacaoweb
  • GG maps
  • Yggtorrent
  • Zone téléchargement

Grimag

  • Accueil
  • Catégories
    • Smartphone
    • High Tech
    • Business
    • Web
    • Appli Jeux Vidéo
    • Shopping
  • Android c’est quoi ?
  • Nous Contacter
  • Nos comparatifs
    • Drone avec caméra
    • Clavier d’ordinateur
    • Onduleur
    • GPS
    • Répéteur WiFi

Utiliser l’accéléromètre d’android dans ses applications



Dans ce tuto je vais utiliser l’accéléromètre, pour afficher la position de mon portable dans l’espace. les coordonnées X,Y,Z.

D’abord mon fichier xml pour afficher le resultat




    
     
     
      
    
    
    
    
     
     
      
    
    
    
    
     
     
      
    
    
    

acelometre

Pour utiliser les capteurs d’android  j’utilise la class SensorManager.

Dans ma methode onCreate je crée mon objet SensorManager

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // mon objet mSensorManager de type  SensorManager qui prend la main
        mSensorManager = (SensorManager)getSystemService(this.SENSOR_SERVICE); 
      //Sensor. TYPE_ACCELEROMETER défini le type de capteur
     //SensorManager.SENSOR_DELAY_NORMAL le delai  de rafraichissement des informations
        mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
        SensorManager.SENSOR_DELAY_NORMAL); 
        //les objet de la fenetre xml
        mTxtViewX = (TextView) findViewById(R.id.textX);
        mTxtViewY = (TextView) findViewById(R.id.textY);
        mTxtViewZ = (TextView) findViewById(R.id.textZ);
        
    }

je crée une méthode positon qui met à jour les champs TextView de mon Xml.

 public void Position(float iX, float iY, float iZ) 
    { 
    	mTxtViewZ.setText(" "+iZ); 
    	mTxtViewX.setText(" "+iX); 
    	mTxtViewY.setText(" "+iY); 
    }

Je crée maintenant mon objet SensorEventListener , qui sera l’écouteur des évènements de mon capteur.

private final SensorEventListener mSensorListener = new SensorEventListener() { 
        // action quand le capteur bouge
        public void onSensorChanged(SensorEvent se) 
        { 
            float x = se.values[0]; 
            float y = se.values[1]; 
            float z = se.values[2]; 
            // met à jour la position dans mes TextView
            Position(x, y , z); 
        } 
        
        public void onAccuracyChanged(Sensor sensor, int accuracy) {} 
   }; 

Le code complet.

package org.accelometre;

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;

public class Accelerometre extends Activity {
	private SensorManager mSensorManager;
	private TextView mTxtViewX;
	private TextView mTxtViewY;
	private TextView mTxtViewZ;
	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mSensorManager = (SensorManager)getSystemService(this.SENSOR_SERVICE); 
        mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
        SensorManager.SENSOR_DELAY_NORMAL); 
        //mTxtView = new TextView(this);
        mTxtViewX = (TextView) findViewById(R.id.textX);
        mTxtViewY = (TextView) findViewById(R.id.textY);
        mTxtViewZ = (TextView) findViewById(R.id.textZ);
      
    }
    
    public void Position(float iX, float iY, float iZ) 
    { 
    	mTxtViewZ.setText(" "+iZ); 
    	mTxtViewX.setText(" "+iX); 
    	mTxtViewY.setText(" "+iY); 
    }
    
    private final SensorEventListener mSensorListener = new SensorEventListener() { 
        
        public void onSensorChanged(SensorEvent se) 
        { 
            float x = se.values[0]; 
            float y = se.values[1]; 
            float z = se.values[2]; 
            Position(x, y , z); 
        } 
        
        public void onAccuracyChanged(Sensor sensor, int accuracy) {} 
   }; 
    
   @Override 
   protected void onResume() 
   { 
        super.onResume(); 
        mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); 
   } 
    
   @Override 
   protected void onStop() 
   { 
        mSensorManager.unregisterListener(mSensorListener); 
        super.onStop(); 
   } 
    
    
    
 //**********fin de la class*************************   
}

Pour tester cette class vous devez disposer d’un téléphone, je ne crois que ça fonctionnera sur l’émulateur.

Il est temps de mettre à profit les tutoriels d’Android France:
Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo

Août 23, 2009Gnakouri Danon


Charts in France - L'application Android est disponibleConfigurer deux comptes google apps sur votre téléphone
Gnakouri Danon

Co-fondateur du site Android france, senior lead developper, passionné de bière et de cigare cubain

23 août 2009 Developpement, Tuto développementaccelometre, Developpement, Tutoriel2,309

2023 © Android-France