SensorEventListener: Aufruf in anderer Klasse

F

funk

Ambitioniertes Mitglied
2
Hallo,

wie ich hier im Forum schon beschrieben habe bastel ich an einer App um Dead Reckoning mit dem Milestone durchzuführen.

Ich habe jetzt versucht alle Accelerometer-bezogenen Funktionen aus meiner eigentlichen Activity in eine andere Klasse auszulagern. Wenn ich diese dann in meiner Activity instantiiere, hängt sich meine App immer an der Stelle auf, an der sie den SensorManager aufrufen und den SensorEventListener registrieren soll...

Sieht einer von euch den Fehler und kann mir helfen? Ich weiß langsam keinen Rat mehr...

Gruß,
Frank

Hier die eigentliche Sensors-Klasse
Code:
package de.zeh.android.Sensors;

import ...


public class Sensors extends Activity{
    
    // Deklaration der Variablen
    ...
    
    // Deklaration der Klassen zum Triggern der Konstruktoren
    Accelerometer mAccelerometer;

 
    // Ende Deklaration
    //----------------------------------------------------------------------
    
    

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        Log.d("Log S 1","onCreate gestartet");
        
        mAccelerometer = new Accelerometer(this);
        Log.d("Log S 2","mAccelerometer instantiiert");

        // Layout Definition
        setContentView(R.layout.main);
        ...
    }
Hier die Ausgelagerte Accelerometer-Klasse
Code:
package de.zeh.android.Sensors;

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.util.Log;

public class Accelerometer extends Sensors implements SensorEventListener{
    
    // Deklaration der Sensor-Werkzeuge und -Variablen
    private SensorManager mSensorManager;
    private SensorEventListener sensorlistener;
    float[] magnetic_values;
    float[] accelerometer_values;
    float[] actual_orientation;
    boolean sensorReady = false;
    
    
    public Accelerometer(Activity parent) {
        Log.d("Log A 1","Accelerometer aufgerufen");
        this.mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// hier hängt sich die App auf!!
        this.mSensorManager.registerListener(sensorlistener, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_UI);
        this.mSensorManager.registerListener(sensorlistener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_UI);
        Log.d("Log A 2","Listener registriert");
        
    }
 

Ähnliche Themen

Helmut1A
  • Helmut1A
Antworten
7
Aufrufe
1.126
Helmut1A
Helmut1A
D
Antworten
23
Aufrufe
2.513
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.974
OnkelLon
OnkelLon
Zurück
Oben Unten