Cómo obtener orientación del dispositivo Android

Se podría pensar que habría una solución directa. El estado de documentos Android:

El sensor de orientación estaba obsoleto en Android 2.2 (API nivel 8). En lugar de utilizar datos brutos del sensor de orientación, le recomendamos que utilice el método getRotationMatrix () junto con el método getOrientation () para calcular los valores de orientación.

Sin embargo, no proporcionan una solución sobre cómo implementar getOrientation() y getRotationMatrix() . He pasado varias horas leyendo a través de los mensajes aquí en los desarrolladores que utilizan estos métodos, pero todos ellos han pegado parcialmente el código o alguna aplicación extraña. Google no ha proporcionado un tutorial. ¿Puede alguien por favor pegar una solución simple utilizando estos dos métodos para generar la orientación?

Aquí está la implementación de getOrientation ():

 public int getscrOrientation() { Display getOrient = getWindowManager().getDefaultDisplay(); int orientation = getOrient.getOrientation(); // Sometimes you may get undefined orientation Value is 0 // simple logic solves the problem compare the screen // X,Y Co-ordinates and determine the Orientation in such cases if(orientation==Configuration.ORIENTATION_UNDEFINED){ Configuration config = getResources().getConfiguration(); orientation = config.orientation; if(orientation==Configuration.ORIENTATION_UNDEFINED){ //if height and widht of screen are equal then // it is square orientation if(getOrient.getWidth()==getOrient.getHeight()){ orientation = Configuration.ORIENTATION_SQUARE; }else{ //if widht is less than height than it is portrait if(getOrient.getWidth() < getOrient.getHeight()){ orientation = Configuration.ORIENTATION_PORTRAIT; }else{ // if it is not any of the above it will defineitly be landscape orientation = Configuration.ORIENTATION_LANDSCAPE; } } } } return orientation; // return value 1 is portrait and 2 is Landscape Mode } 

Y u también puede referir este ejemplo que representan el uso de ambos métodos:

  getOrientation and getRotationMatrix 

http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html

  public int getScreenOrientation() { // Query what the orientation currently really is. if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { return 1; // Portrait Mode }else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { return 2; // Landscape mode } return 0; } 
 protected void onResume() { // change the screen orientation if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { setContentView(R.layout.portrait); } else if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { setContentView(R.layout.landscape); } else { setContentView(R.layout.oops); } } 
  • Android: la vista previa de la cámara es lateral
  • Android: fija la orientación de la pantalla sólo para una página (diferencia telefónica)
  • Las vistas agregadas dinámicamente desaparecen en orientación en Android
  • Cómo obtener el ancho de ventana correcto en el cambio de orientación para dispositivos Android, tabletas y móviles
  • Cómo detectar la orientación del dispositivo Android?
  • Tarea de fondo, diálogo de progreso, cambio de orientación - ¿hay alguna solución de trabajo 100%?
  • Descripción de la orientación del teléfono Android, incluida la brújula
  • FragmentActivity con ViewPager: Crash en el cambio de orientación
  • setting screenOrientation en AndroidManifest.xml no funciona
  • GetRotation siempre devuelve cero
  • ¿La aplicación de Android restablece el cambio de orientación, la mejor manera de manejar?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.