1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. funk, 20.07.2010 #1
    funk

    funk Threadstarter Android-Hilfe.de Mitglied

    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");
            
        }
     

Diese Seite empfehlen