Verwenden von getRotationMatrix und getOrientation in Android 2.1

8

Ich habe schon viel zu lange Probleme damit. Dieser Code sollte dx, dy, dz für den Beschleunigungssensor und eine laufende Summe des dx ausgeben. Es sollte auch Azimut, Tonhöhe und Roll ausgeben.

Ich habe die verwendet Informationen hier gegeben , aber ohne Erfolg.

Dieser Code gibt Tonhöhe, Azimut oder Roll nicht korrekt aus. Es gibt 0,0, -0,0, -0,0 für die letzten drei Textansichten aus.

%Vor%     
aaronmar 03.06.2010, 06:20
quelle

2 Antworten

6

Ich könnte etwas vermissen (und Sie haben das vielleicht bereits gelöst), aber für mich sieht es so aus, als wäre Ihre switch-Anweisung falsch:

%Vor%

Wenn Ihr Sensorereignis TYPE_ACCELEROMETER ist, werden die Werte aus dem Ereignis in accelerometerValues und geomagneticMatrix geklont und sensorReady wird auf true gesetzt. Ich denke, dass Sie möglicherweise die Reihenfolge dieses Blocks ändern müssen, oder möglicherweise fügen Sie break; nach Ihrem ersten Fall hinzu.

    
aganders3 29.06.2010, 16:01
quelle
2

Der Grund dafür, dass Sie 0.0, -0.0, -0.0 von getOrientation () erhalten, ist, dass getRotationMatrix () nicht immer ein gültiges Ergebnis liefert. Sie müssen den Rückgabewert von getRotationMatrix () überprüfen, der falsch ist, wenn das Ergebnis ungültig ist, oder true, wenn er erfolgreich war.

Hinzugefügt: Eigentlich ist das nicht richtig herausgekommen. Sie erhalten ein ungültiges Ergebnis aus dem Grund, auf den Agander hingewiesen haben. Die Überprüfung des Rückgabewerts wäre lediglich ein Hinweis darauf, dass Sie tatsächlich ein ungültiges Ergebnis erhalten haben.

    
schufty 10.09.2010 04:37
quelle

Tags und Links