Gracias a @Codeversed, cuya excelente respuesta está muy cerca de trabajo (pero no como se muestra), que tienen una MainActivity
que funciona bien. Todo lo que necesita hacer es mover .enable
a donde se puede ejecutar FUERA del bloque on
, como inmediatamente después de la declaración de myOrientationEventListener
.
import android.app.Activity;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.OrientationEventListener;
public class MainActivity extends Activity
{
public static boolean PORTRAIT_MODE = true;
OrientationEventListener myOrientationEventListener ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myOrientationEventListener = new OrientationEventListener(this,
SensorManager.SENSOR_DELAY_NORMAL)
{
@Override
public void onOrientationChanged(int orientation)
{
PORTRAIT_MODE = ((orientation < 100) || (orientation > 280));
Log.w("Orient", orientation + " PORTRAIT_MODE = " + PORTRAIT_MODE);
}
};
Log.w("Listener", " can detect orientation: " + myOrientationEventListener.canDetectOrientation() + " ");
myOrientationEventListener.enable();
}
}
¿Quiere decir en el tiempo de ejecución de la aplicación para verificar si el dispositivo es horizontal o vertical? – Herry
posible duplicado de [Cómo comprobar la orientación natural del dispositivo (predeterminado) en Android (es decir, obtener un paisaje para, por ejemplo, Motorola Charm o Flipout)] (http://stackoverflow.com/questions/4553650/how-to-check-device- natural-default-orientation-on-android-ie-get-landscape) – weston