2012-12-09 61 views

回答

0

使用的SensorManager和TYPE_GYROSCOPE/TYPE_ROTATION_VECTOR/TYPE_ORIENTATION /獲得這些價值。

詳情請看this page

+5

發佈解決方案而非鏈接,此鏈接可能會在未來例如中斷下面的答案http://stackoverflow.com/a/13817444/575643 –

+0

請添加像其他答案一樣的解決方案。 – DeeJay

8

你可以得到屏幕方向(例如您的onResume()方法)是這樣的:

private static final int ORIENTATION_0 = 0; 
private static final int ORIENTATION_90 = 3; 
private static final int ORIENTATION_270 = 1; 





Display display = ((WindowManager) 
      getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
int screenOrientation = display.getRotation(); 

switch (screenOrientation) 
{ 
default: 
case ORIENTATION_0: // Portrait 
    // do smth. 
break; 
case ORIENTATION_90: // Landscape right 
    // do smth. 
break; 
case ORIENTATION_270: // Landscape left 
    // do smth. 
break; 
} 
+0

謝謝,但我想獲得手機飛機的X,Y,Z。這是Z平面的解決方案,它不包含其他內容。 –

+0

如果你想檢查所有3架飛機,那麼你可以註冊一個SensorEventListener,並在其「onSensorChanged(SensorEvent event)」方法中檢索這些值。欲瞭解更多詳情,請看這裏:[SensorEventListener](http://developer.android.com/reference/android/hardware/SensorEventListener.html)和這裏[SensorEvent](http://developer.android.com/reference/android/硬件/ SensorEvent.html) – Siggy

0

我想你必須使用傳感器管理器來計算每個點上的x,y,z。並用公式找出兩點之間的角度。考慮你的出發點(0,0,0);