Beschleunigungssensor

M

manu

Erfahrenes Mitglied
29
Hallo,

ich versuche schon eine Weile den Beschleunigungssensor auszulesen.
Bis jetzt erhalte ich aber immer die Werte vom Lagesensor.

Hat einer für mich einen Tipp, wie man den ausliest?


Gruß Manu
 
Ich mach das so (es muss nicht unbedingt SENSOR_ALL sein):

...
SensorManager sensor = (SensorManager) getSystemService(SENSOR_SERVICE);
sensor.registerListener(this, SensorManager.SENSOR_ALL, SensorManager.SENSOR_DELAY_GAME);
...

und

public void onSensorChanged(int sensor, float[] values) {
if (sensor == SensorManager.SENSOR_ACCELEROMETER) {
float x = values[0];
float y = values[1];
float z = values[2];
...
} else if (sensor == SensorManager.SENSOR_ORIENTATION) {
float x = values[0];
float y = values[1];
float z = values[2];
...
} else {
...
}
}
 
Danke, das muss ich bei Gelegenheit mal testen.
Ich hatte in Erinnerung, dass ich das so auch probiert habe.
 
Tach,
hab seit kurzem damit begonnen mit dem G1 zu experimentieren und suche ein Code-Besipiel zum Beschleunigungs/Lagesensor. So dass die aktuellen werte einfach in einem TextView angezeigt werden. Also der Code oben sieht schon gut aus, ist aber leider nicht vollständig könntet ihr die restlichen Zeilen oder einen Link zu einem guten Beispiel posten? Bin erst seit kurzem bei Java dabei hatte vorher nur mit C++ zutun und die DOku auf Android.com ist nicht wirklich hilfreich.:(

Danke im Vorraus!
 
Markus schrieb:
Ich mach das so (es muss nicht unbedingt SENSOR_ALL sein):

...
SensorManager sensor = (SensorManager) getSystemService(SENSOR_SERVICE);
sensor.registerListener(this, SensorManager.SENSOR_ALL, SensorManager.SENSOR_DELAY_GAME);
...

und

public void onSensorChanged(int sensor, float[] values) {
if (sensor == SensorManager.SENSOR_ACCELEROMETER) {
float x = values[0];
float y = values[1];
float z = values[2];
...
} else if (sensor == SensorManager.SENSOR_ORIENTATION) {
float x = values[0];
float y = values[1];
float z = values[2];
...
} else {
...
}
}


ja so funktioniert das bestimmt, aber mit 1.5 ist der sensorlistener deprecated und sensoreventlistener ist neu

gibts dazu irgendwelche infos dazu?
 
hier ein kleiner Ausschnitt meinerseits:

Erstmal der SensorEventListener:
Code:
private class DeviceSensor implements SensorEventListener {
...
}
Dann nur noch registrieren:
Code:
deviceSensor = new DeviceSensor();

SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
      mSensorManager.registerListener(deviceSensor,
                                      mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                                      SensorManager.SENSOR_DELAY_NORMAL);
      mSensorManager.registerListener(deviceSensor,
                                      mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
                                      SensorManager.SENSOR_DELAY_FASTEST);
 
danke für deinen code

ich werde ihn mal probieren bei mir zu integrieren.

geht das bei dir im emulator auch? hab etwas gelesen, dass 1.5 probleme mit dem sensormanager hat??
 

Ähnliche Themen

E
Antworten
0
Aufrufe
560
einsiedler
E
T
Antworten
5
Aufrufe
1.178
markus.tullius
markus.tullius
M
Antworten
2
Aufrufe
1.136
Martin2013
M
Zurück
Oben Unten