1. derEisige, 15.04.2019 #1
    derEisige

    derEisige Threadstarter Neuer Benutzer

    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);
    //sensorManager.registerListener(this, myLight, 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: 16.04.2019
  2. numanoid

    numanoid Android-Experte

    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: 23.04.2019 um 14:26 Uhr
    jogimuc bedankt sich.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Nachrichten vom FirebaseMessagingService an die MainActivity übergeben? Android App Entwicklung 09.01.2019
Views in Liste drehen, wie breite / Höhe anpassen? Android App Entwicklung 26.12.2018
Android App - Objekt bewegt sich nach Handyneigung Android App Entwicklung 30.10.2018
shape fuktioniert auf Hardware nicht Android App Entwicklung 22.07.2018
TextView wert übergeben Android App Entwicklung 28.06.2018
Du betrachtest das Thema "Hardware Sensoren an Listener übergeben" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.