zwei Sensoren in einer App abfragen

  • Antworten:2
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 178

06.09.2019, 21:42:37 via Website

Hallo zusammen

Ich möchte in derselben App den Sensor für die Temperatur und Luftdruck abfragen. Ich habe nur ein Sensormanager. Wie kann ich damit zwei Sensoren auslesen?

    //Luftdruck
private SensorManager sensorManager;
private Sensor pressur = null;
private TextView txt_durck;
//Temperatur
private SensorManager sensorTemp;
private Sensor temp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txt_durck = (TextView) findViewById(R.id.txt_druck);

    sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    if (sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) != null){
        // Success! There's a pressure sensor.
        pressur = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
    } else {
        // Failure! No pressure sensor.
        txt_durck.setText("kein Sensor");
    }

    sensorTemp = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    temp = sensorTemp.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);

}

@Override
public void onSensorChanged(SensorEvent sensorEvent) {
    Float f_wert;

    f_wert = sensorEvent.values[0];
    txt_durck.setText(String.format("%#.2f", f_wert));
}

@Override
public void onAccuracyChanged(Sensor sensor, int i) {

}

@Override
protected void onResume() {
    super.onResume();
    sensorManager.registerListener(this, pressur, sensorManager.SENSOR_DELAY_NORMAL);
}

@Override
protected void onDestroy() {
    sensorManager.unregisterListener(this);
    super.onDestroy();
}

Gruss Renato

Diskutiere mit!
Beste Antwort
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.564

07.09.2019, 11:19:44 via Website

Hallo Renato,

was ist dabei das Problem.
Genauso nutzen wie den PressureSensor:

   sensorManager.registerListener(this, temp, sensorManager.SENSOR_DELAY_NORMAL);

In deiner onSensorChanged Musst du dann unterscheiden vom welchem Sensor der Wert kam.
Das ist aber kein Problem, da das im Event mit drin steht in event.
z.b. if(event.sensor.getType() == Sensor.TYPE_PRESSURE) //Drucksensort
etc..

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!