2010-12-01 1 views
1

화면의 하단 이 바닥을 향하고있을 때 가속도계가 0의 롤을보고하는지 여부를 어떻게 결정합니까?안드로이드 장치가 자연스럽게 가로 또는 세로인지 확인하려면 어떻게합니까?

사용자가 전화를 특정 위치에 두지 않고이 작업을 수행해야합니다. 내가 좋아하는 뭔가를 할 수 있기를 바라고 :

Context.getResources().getConfiguration().getNaturalOrientation == Orientation.LANDSCAPE 

중요 : 위의 코드 라인, 수 없습니다 그것이 내가하고 싶은 것이 단지 예입니다.

답변

1

을 감지하는 데 도움이 될 수 있습니다. API8 이상을 사용하는 것은 매우 간단합니다. 간단하게 사용하십시오. Display.getRotation()

0

이 당신은 내가 이것에 대한 답을 찾을 구성 변경

@Override 
     public void onConfigurationChanged(Configuration newConfig) { 
      super.onConfigurationChanged(newConfig); 
      //onConfigurationChanged 
      if (newConfig.equals(Configuration.ORIENTATION_LANDSCAPE)) { 
       //ORIENTATION_LANDSCAPE 
      } else if (newConfig.equals(Configuration.ORIENTATION_PORTRAIT)) { 
       //ORIENTATION_PORTRAIT 
       } 
     } 
+0

이것은 도움이 될 수 있지만 사실 내 질문에는 대답하지 않습니다. 구성 변경 여부를 알려줍니다. 장치가 "자연스럽게"가로 또는 세로인지 알고 싶습니다. 즉, 장치가 자연스러운 방향으로 고정되어있는 경우, 화면의 긴 가장자리가 짧은 가장자리 또는 짧은 가장자리에있는 것입니다. – Gallal

+0

어떤 실제 패턴을 기반으로합니까? Photoframes/Tablets는 항상 풍경과 전화의 초상화이거나 당신의 활동을 시작할 때 전화 방향이 지금 무엇인지 알고 싶습니까? –

+0

일부 장치는 자연스럽게 세로입니다. 즉, 방향 센서를 검사 할 때 장치 상단 (자연스럽게 세로 장치이기 때문에 짧은 가장자리)이 위로 향하게되면 피치는 -180이됩니다. 자연 경관 장치 인 경우 상단 (긴 가장자리)이 위로 향하면 음높이가 -180으로보고됩니다. 기기가 lanscape 모드로 유지 될 때 특정 롤 값을 가정하는 앱에 문제가 발생할 수 있습니다. 나는 생각한다! – Gallal

관련 문제