2013-02-21 3 views
19

Hallo Ich möchte den Typ type_orientation verwenden, aber es ist für das Android 4.0.3 veraltet. Ich benutze es für die erweiterte Realität. Ich habe versucht, im Internet zu finden, aber ohne Erfolg. Meine Anwendung funktioniert, aber mein Text bleibt am selben Ort! Hier ist mein Code:Wie kann ich type_orientation (ist veraltet) für Android 4.0.3 ersetzen?

@Override 
    protected void onStart() {  
     super.onStart(); 
     sensorMngr = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
     sensorLstr = createListener(); 
     sensorMngr.registerListener(sensorLstr, sensorMngr.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_UI); 
    } 

    @Override 
    protected void onStop() {  
     super.onStop(); 
     sensorMngr = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
     sensorMngr.unregisterListener(sensorLstr, sensorMngr.getDefaultSensor(Sensor.TYPE_ORIENTATION));   
    } 

Alles es ist gut, nur das, ich sah schon auf http://developer.android.com/reference/android/hardware/Sensor.html, aber ich kann t verstehen (ich bin französisch und mein Englisch ist nicht sehr perfekt ...) Vielen Dank für Ihre Hilfe!!!

Antwort

16

Here's a link zu einem Blog mit einer Lösung. Im Wesentlichen hören Sie auf, den Orientierungssensor zu verwenden, und verwenden Sie gleichzeitig den Magnetfeldsensor und den Beschleunigungssensor, um eine gleichwertige Funktionalität zu erhalten. Es ist mehr Arbeit, aber Sie können weiterhin einen Callback verwenden, um Orientierungsänderungen zu handhaben.

+0

ich es auf meinem Samsung i9000 versucht, aber es scheint nicht, zu arbeiten – Levi

+0

Es funktioniert jetzt, habe ich vergessen, den Azimut in Grad zu konvertieren. Vielen Dank! – Levi

+0

Ich denke, ORIENTATION_SENSOR ist in allen Geräten üblich! ist MAGNETIC & ACCELEROMETER auch üblich? –