7

Ich habe die Aktivitätsausrichtung in Manifest als Porträt festgelegt. Da ich nicht möchte, dass mein Bildschirm rotiert.Android: Aktuelle Geräteausrichtung abrufen

Aber auf einen Button klicken, möchte ich die aktuelle Geräteausrichtung (Hoch- oder Querformat) in Android erhalten? Ich brauche keine kontinuierliche Aktualisierung von den Sensoren; Gerade die aktuelle Geräteausrichtung genügt, wenn ich auf den Button klicke.

PS: Geräteausrichtung ist die Art, wie ich mein Gerät halte. Mischen Sie dies nicht mit der Bildschirmausrichtung.

Das habe ich bisher gemacht?

int PORT=1,LAND=2; 

WindowManager windowService = (WindowManager)getSystemService(Context.WINDOW_SERVICE); 

int rotation = windowService.getDefaultDisplay().getRotation();   

    if (Surface.ROTATION_0 == rotation) { 
     rotation = PORT; 
    } else if(Surface.ROTATION_180 == rotation) { 
     rotation = PORT; 
    } else if(Surface.ROTATION_90 == rotation) { 
     rotation = LAND; 
    } else if(Surface.ROTATION_270 == rotation) { 
     rotation = LAND; 
    } 
return rotation; 

Auch das folgende Verfahren unter Verwendung

getResources().getConfiguration().orientation 

Es ist immer 1 zurückkehren, da standardmäßig ein Porträt gesetzt ist meine Tätigkeit nicht hilft.

Beispiel/Beispiel-Code wird sehr geschätzt.

Danke. diese

+3

http://stackoverflow.com/questions/2795833/check-orientation-on-android-phone dauerte 10 Sekunden. googeln –

+1

Bart: Nun, ich ging durch das gleiche. aber es scheitert, wenn die Bildschirmausrichtung behoben ist. Ich möchte die Geräteausrichtung auf Knopf klicken – Kushal

+0

Sie können den Code im ActionListener für Ihre Taste –

Antwort

4

Verwenden :)

getResources().getConfiguration().orientation 
+1

Dies ist fehlgeschlagen, wenn die Bildschirmausrichtung festgelegt ist. – Kushal

+0

Wenn es fehlschlägt, bitte aktualisieren Sie Ihre Frage, mit Code und Stacktrace –

+0

Durch den Fehler, ich meine, es gibt immer den Hochformat-Modus Wert unabhängig davon, wie ich mein Gerät halten. – Kushal