2010-09-22 5 views
6

Tôi muốn hiển thị hướng trên màn hình điện thoại đang quay. Ví dụ:Cách nhận hướng la bàn

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

Trong biểu đồ trên, điện thoại sẽ hiển thị "Bắc". Kể từ khi người dùng (thanh với 0 cho đầu của mình) đang giữ điện thoại ([] trong biểu đồ) chỉ về phía bắc.

Tôi đã tìm thấy this example. Tôi hiểu những gì nó làm ngoại trừ nó dường như tính toán yaw, pitch, roll, và inclination. Những gì là những người và làm thế nào tôi sẽ sử dụng chúng để chỉ đơn giản là tìm thấy cách mà điện thoại đang trỏ?

Ngoài ra điều này android documentation đề cập đến trục X, Y và Z nhưng tôi không thấy bất kỳ nơi nào cho biết các trục đó tương ứng với điện thoại như thế nào? Z có đi từ dưới cùng của điện thoại lên đầu không?

+1

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

+0

Tôi cũng nhận thấy lớp GeomagneticField có GetX và GetY phương pháp? Tôi có thể sử dụng nó để thay thế không? Nó không có bất kỳ loại sensorChanged altert mặc dù. Tôi có phải tạo vòng lặp của riêng mình để thăm dò ý kiến ​​không? – Greg

+0

Bài viết này có thể hữu ích cho bạn. Bạn cần phải thận trọng về các giả định về hướng màn hình khi hiển thị chỉ đường trên màn hình. http://android-developers.blogspot.com/2010/09/one-screen-turn-deserves-another.html –

Trả lời

5

this là cách trục (axiy?) Trông như thế nào.

Tôi không thể tìm thấy liên kết tới trang lừa đảo tôi sử dụng, nhưng nó trông giống như this.

Tóm lại, bạn muốn đăng ký để nghe Sensor.TYPE_ORIENTATION, từ mảng giá trị nhận được, giá trị [0] và sẽ hiển thị góc của bạn (từ Bắc tôi tin).

một số example từ * android.com

+0

Cảm ơn. Điều gì sẽ xảy ra nếu điện thoại ở chế độ ngang? – Greg

+0

theo bài đăng này, http://www.google.com/support/forum/p/android/thread?tid=11b73cc231c318af&hl=en về cơ bản la bàn phần cứng của nó, vì vậy nó sẽ hoạt động bình thường ở chế độ ngang – bgs

+2

Tôi chỉ muốn chỉ ra rằng 'Sensor.TYPE_ORIENTATION' đã không được chấp nhận, có lợi cho' SensorManager.getOrientation() '. – AlbeyAmakiir