1

ich derzeit eine Android-Anwendung entwickle, die mehrere Sensoren verwendet, ich habe mSensor= mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); in OnCreate Methode verwendet, um den Sensor und tv.setText("X: "+ sensorEvent.values[0] + ...); in onSensorChanged Verfahren zu bekommen, den Beschleunigungs-Wert in einer Textansicht angezeigt werden soll.Mehrere Sensoren auf eine Android-Anwendung

Wie kann ich weitere Sensoren hinzufügen und ihre Werte auf die gleiche Weise anzeigen? Wie wird das Programm wissen, auf welchen Sensor ich spreche, wenn ich sage sensorEvent.values[0]?

Vielen Dank für jede Hilfe im Voraus, Maja

Antwort

0

Sie werden, wenn die Werte Sensor müssen prüfen, diese Art von Sensor mit dem event.sensor.getType() -Methode sind. Wenn Sie also sowohl auf das Magnetometer als auch auf den Beschleunigungssensor zugreifen wollen:

sensorManager = (SensorManager) 
getActivity().getSystemService(Context.SENSOR_SERVICE); 
sensorAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
sensorMagnetic = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); 
sensorEventListener = new SensorEventListener() { 
    @Override 
    public void onSensorChanged(SensorEvent event) { 
     if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) { 
      magnetic = event.values; 
      tv.setText("X: "+ magnetic.values[0] + ...); 
     } 
     if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) 
      gravity = event.values; 
      tv2.setText(X: " + gravity.values[0] + ...); 
     } 
    } 
} 
+0

Vielen Dank für Ihre Hilfe! – Maja

+0

Was passiert, wenn alle Sensoren gleichzeitig gewechselt werden? Was wird der Inhalt von event.values ​​sein? – Chaine

+0

Jeder Sensor löst einen separaten Ereignisrückruf aus. Sie müssen sich nie über event.values ​​Gedanken machen, die andere Werte als die des Sensors enthalten, der den Rückruf durchgeführt hat. –

Verwandte Themen