Hardware Sensoren an Listener übergeben

D

derEisige

Neues Mitglied
Threadstarter
Guten Abend,

ich habe da mal eine frage zu den Hardware Sensoren.
wie kann ich zwei Sensoren an den Listener übergeben?
also ich möchte das Accelerometer und den Light Sensor gleichzeitig auslesen

X:
Y:
Z:
Lux:

Code:
// Sensor
accelX = (TextView)findViewById(R.id.accelX);
accelY = (TextView)findViewById(R.id.accelY);
accelZ = (TextView)findViewById(R.id.accelZ);
lichtLux = (TextView)findViewById(R.id.lichtLux);
sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
myAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
myLight = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
sensorManager.registerListener(this, myAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); 
Code:
@Override
public void onSensorChanged(SensorEvent mEvent) { accelX.setText("X: " + mEvent.values[0]); accelY.setText("Y: " + mEvent.values[1]); accelZ.setText("Z: " + mEvent.values[2]); lichtLux.setText("Lux: " + mEvent.values[0]);
}
 
Zuletzt bearbeitet:
numanoid

numanoid

Stammgast
Es müsste doch gehen, dass man für mehrere Sensoren einen Listener registriert. Also beides

sensorManager.registerListener(this, myAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
sensorManager.registerListener(this, myLight, SensorManager.SENSOR_DELAY_NORMAL);

In der onSensorChanged() prüft man dann, für welchen Sensor Daten kommen:

if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
accelX.setText("X: " + mEvent.values[0]);
accelY.setText("Y: " + mEvent.values[1]);
accelZ.setText("Z: " + mEvent.values[2]);
} else if (event.sensor.getType() == Sensor.TYPE_LIGHT) {
lichtLux.setText("Lux: " + mEvent.values[0]);
}
Die Sensor-Werte bekommst Du nicht in einem Aufruf von onSensorChanged(), sondern hintereinander. Aber sollte kein Problem sein, wenn für einen Bruchteil einer Sekunde beim Start der App, für einen Sensor noch kein Wert angezeigt wird. Das ist gar nicht wahrnehmbar.
 
Zuletzt bearbeitet:
D

derEisige

Neues Mitglied
Threadstarter
Vielen Dank, dass hate ich gesucht.
 
Oben Unten