2010-09-22 25 views
6

Ich möchte die Richtung auf dem Bildschirm anzeigen, die das Telefon zugewandt ist. Zum Beispiel:So erhalten Sie die Kompassrichtung

0 
    |- [] 
    |_ 
    South --- North 

In der obigen Abbildung würde das Telefon "North" anzeigen. Da der Benutzer (der Stick mit 0 für seinen Kopf) das Telefon (das [] im Diagramm) nach Norden zeigt.

Ich fand this example. Ich verstehe, was es tut, außer es scheint Gieren, Pitch, Roll und Inklination zu berechnen. Was sind das und wie würde ich sie verwenden, um einfach herauszufinden, auf welche Art das Telefon zeigt?

Auch diese android documentation erwähnt X-, Y- und Z-Achsen, aber ich sehe nirgendwo, dass diese Achsen mit dem Telefon übereinstimmen? Geht Z von unten nach oben?

+1

http://en.wikipedia.org/wiki/Yaw_angle – Falmarri

+0

Ich habe auch bemerkt die GeomagneticField Klasse getX und getY Methoden hat? Kann ich das stattdessen benutzen? Es hat jedoch keine Art von Sensor verändert. Müsste ich meine eigene Schleife erstellen, um sie abzufragen? – Greg

+0

Dieser Artikel könnte für Sie nützlich sein. Sie müssen bei der Anzeige von Anweisungen auf dem Bildschirm über Annahmen bezüglich der Bildschirmausrichtung vorsichtig sein. http://android-developers.blogspot.com/2010/09/one-screen-turn-deserves-another.html –

Antwort

5

this Wie sieht die Achse (axiy?) Aus?

Ich konnte keinen Link zu dem Spickzettel finden, den ich benutze, aber er sah irgendwie wie this aus.

Zusammenfassend möchten Sie registrieren, um Sensor.TYPE_ORIENTATION zu überwachen, aus dem eingehenden Array von Werten erhalten, Wert [0] und das sollte Ihnen Ihren Winkel zeigen (von Norden ich glaube).

einige example von * android.com

+0

Danke. Was passiert, wenn sich das Telefon im Querformat befindet? – Greg

+0

nach diesem Post http://www.google.com/support/forum/p/android/thread?tid=11b73cc231c318af&hl=de ist es im Grunde ein Hardware-Kompass, so sollte es normal im Querformat-Modus – bgs

+2

ich würde nur verhalten Ich möchte darauf hinweisen, dass 'Sensor.TYPE_ORIENTATION' zugunsten von' SensorManager.getOrientation() 'veraltet ist. – AlbeyAmakiir