2013-07-19 51 views
0

的Nexus 4從getRotation結果是不是在Android的

我特地使用的System.out.println上打印出的logcat旋轉,當旋轉我我的設備觀察值精確。

int orientation_photo = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation(); 
System.out.println("For Debug: orientation_photo: " + orientation_photo); 

旋轉(0,1,2或4)不prcise在所有。有時我旋轉90度,但旋轉值不變。

但是,相信Nexus 4設備可以從其默認相機的定向性能中正確檢測到它,它總是記錄正確的方向,以便我們可以以正確的方式查看圖片。

我需要一個正確的旋轉值,以便我可以放入照片.jpg文件的ExifInterface。 有什麼幫助嗎?

回答

1

我想我找到了答案,那就是:是的,這是不準確的,從基本的物理原理,因爲定位是主觀的。

1

您正在提取UI的方向,而不是手機本身的方向。由於各種原因,他們並不總是匹配。特別是,許多設備永遠不會將它們的UI旋轉180度。

你可能想看看SensorManager類:http://developer.android.com/reference/android/hardware/SensorManager.html

+0

謝謝。是否有任何內置函數來獲取設備的方向(僅限於4個值)? – user1914692

+0

不,這裏是一個如何使用方向矢量傳感器的例子:http://stackoverflow.com/questions/16978372/type-rotation-vector-not-working-on-certain-devices –