7 import android.content.Context;
8 import android.content.res.Configuration;
9 import android.os.Build;
10 import android.util.Log;
11 import android.view.Display;
12 import android.view.Surface;
13 import android.view.WindowManager;
20 private static final String TAG =
SystemUtil.class.getSimpleName();
22 private enum DeviceType {
29 private DeviceType(
int value) {
41 if (instance == null) {
56 int currentWindowOrientation = context.getResources().getConfiguration().orientation;
57 Display display = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
58 int displayRotation = display.getRotation();
60 switch (currentWindowOrientation) {
63 deviceType = (displayRotation == 0) || (displayRotation == 2) ? DeviceType.SMARTPHONE_LIKE.getValue() : DeviceType.TABLET_LIKE.getValue();
67 deviceType = (displayRotation == 0) || (displayRotation == 2) ? DeviceType.TABLET_LIKE.getValue() : DeviceType.SMARTPHONE_LIKE.getValue();
73 Log.i(TAG,
"deviceType : " + deviceType);
78 int getRealOrientation(
int orientation) {
79 int realOrientation = 3;
80 int displayRotation = Surface.ROTATION_0;
81 WindowManager windowManager = (WindowManager)
MaxstAR.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
82 displayRotation = windowManager.getDefaultDisplay().getRotation();
84 if (Build.MODEL.equalsIgnoreCase(
"M300")) {
85 if (Surface.ROTATION_0 == displayRotation) {
87 }
else if (Surface.ROTATION_180 == displayRotation) {
93 if (orientation == Configuration.ORIENTATION_PORTRAIT) {
94 if (displayRotation == Surface.ROTATION_0) {
96 }
else if (displayRotation == Surface.ROTATION_180) {
98 }
else if (displayRotation == Surface.ROTATION_90) {
100 }
else if (displayRotation == Surface.ROTATION_270) {
103 }
else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
104 if (displayRotation == Surface.ROTATION_0) {
106 }
else if (displayRotation == Surface.ROTATION_180) {
108 }
else if (displayRotation == Surface.ROTATION_270) {
114 return realOrientation;