Grazie a @Codeversed, il cui eccellente risposta è molto vicino a lavorare (ma non come indicato), ho un MainActivity
che funziona bene. È sufficiente spostare .enable
su dove può essere eseguito ESTERNO del blocco on
, ad esempio subito dopo la dichiarazione di 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();
}
}
Intendi trovare il tempo di esecuzione dell'applicazione per verificare che il dispositivo meteo sia orizzontale o verticale? – Herry
possibile duplicato di [Come verificare l'orientamento naturale del dispositivo (predefinito) su Android (ad esempio, ottenere panoramiche per es., Motorola Charm o Flipout)] (http://stackoverflow.com/questions/4553650/how-to-check-device- natural-default-orientation-on-android-ie-get-landscape) – weston