2012-12-09 5 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 이벤트) 메서드에서 값을 검색 할 수 있습니다. 자세한 내용은 여기 [SensorEventListener] (http://developer.android.com/reference/android/hardware/SensorEventListener.html) 및 여기 [SensorEvent] (http://developer.android.com/reference/android/)를 참조하십시오. hardware/SensorEvent.html) – Siggy

0

모든 점에서 x, y, z를 계산하려면 센서 관리자를 사용해야한다고 생각합니다. 방정식을 사용하여 두 점 사이의 각도를 찾습니다. 출발점 (0,0,0)을 고려하십시오;

관련 문제