View
107
Download
2
Category
Preview:
Citation preview
Développer sur AndroidAndroid Lab Test
www.AndroidLabTest.com
Face
bo
ok
Par Bruno Delb
www.youtube.com/androidlabtest
www.twitter.com/brunodelb | www.facebook.com/brunodelb | blog.brunodelb.com
www.facebook.com/Androidlabtest
You
tub
e
Site
off
icie
l
Leçon : Le capteur gyroscope
Le capteur gyroscope
• Dans cette leçon, vous allez apprendre à utiliser la
capteur gyroscope.
• Pour cela, vous allez utiliser le SensorManager et le
capteur de type TYPE_GYROSCOPE.
Le capteur gyroscope
• Pour utiliser le capteur gyroscope, vous devez récupérer le Gestionnaire
de capteur grâce à la méthode getSystemService() puis récupérer le
capteur par défaut de type TYPE_GYROSCOPE.
SensorManager sensorManager = (SensorManager)this.getSystemService (SENSOR_SERVICE);
Sensor sensorGyroscope = sensorManager.getDefaultSensor (Sensor.TYPE_GYROSCOPE);
Le capteur gyroscope
• Pour obtenir les valeurs du gyroscope, vous devez implémenter
SensorEventListener et les méthodes onAccuracyChanged() et surtout
onSensorChanged(), qui permet d’obtenir les valeurs du capteur :
extends Activity implements SensorEventListener {
public void onAccuracyChanged (Sensor sensor, int accuracy) {
}
public void onSensorChanged (SensorEvent event) {
// Valeurs : event.values [0], event.values [1], event.values [2]
}
Le capteur gyroscope
• Lorsque l’application est suspendue (onPause() appelé) et quand elle reprend (onResume() appelé), vous devez respectivement désenregistrer le listener et l’enregistrer :
protected void onResume() {
sensorManager.registerListener (this, sensorGyroscope, SensorManager.SENSOR_DELAY_GAME);
super.onResume();
}
protected void onPause() {
sensorManager.unregisterListener (this, sensorGyroscope);
super.onPause();
}
Layout main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/tv_output"
android:layout_width="fill_parent"
android:layout_height="match_parent" />
</LinearLayout>
Fichier Main.java
public class Main extends Activity implements SensorEventListener {
private SensorManager sensorManager;
private Sensor sensorGyroscope;
private TextView tv_output;
public void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.main);
tv_output = (TextView)findViewById (R.id.tv_output);
sensorManager = (SensorManager)this.getSystemService (SENSOR_SERVICE);
sensorGyroscope = sensorManager.getDefaultSensor (Sensor.TYPE_GYROSCOPE);
}
public void onSensorChanged (SensorEvent event) {
tv_output.setText ("0: " + event.values [0] + "\n" + "1: " + event.values [1] + "\n" + "2: " + event.values [2] + "\n");
}
Fichier Main.java
public void onAccuracyChanged (Sensor sensor, int accuracy) {
}
protected void onResume() {
sensorManager.registerListener (this, sensorGyroscope, SensorManager.SENSOR_DELAY_GAME);
super.onResume();
}
protected void onPause() {
sensorManager.unregisterListener (this, sensorGyroscope);
super.onPause();
}
}
Testez sur votre mobile
Sensor_Gyroscope
Retrouvez-moi sur ma chaîne AndroidLabTest …
Sur ma chaîne Youtubehttps://www.youtube.com/user/mobiledevlabtest
Qui suis-je ?
Bruno Delb,
auteur du 1er livre francophone de développement d’application Java sur mobile (2002),
développeur d’applications mobiles & sociales,
parlez-moi de vos projets.
Et bien sûr sur mon site Web :http://blog.brunodelb.com
Recommended