2011-10-03 79 views
1

我需要确定正在运行我的应用程序的手机的实际方向,我找不到任何方法来执行此操作。我找到了“getRequestedOrientation”函数,但它仅检索由“setRequestedOrientation”函数设置的方向。获取手机的实际方向

在我的应用程序中,我让手机根据其物理方向选择方向。而且我有一些自定义取决于结果。

我该怎么办?

在此先感谢您花费时间来帮助我。

+0

相似的问题:http://stackoverflow.com/questions/2795833/check-orientation-on-android-phone –

回答

0

它真的要得到当前的定位。

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 
int orientation = display.getOrientation(); 
+0

更简单但是... getResources()。getConfiguration()。orientation –

+0

这个答案让我在路上但“getSystemService”返回一个空的句柄。我已经使用“getWindowManager”来代替它并且它可以工作。 – Zelig

0

thisthis,this计算器问题。他们都解决了如何获得Android手机定位,第二个包含了Android指南针和定位系统如何工作的详细解释。

1

根据这两个问题:

你可以使用:

Activity.getResources().getConfiguration().orientation

据对第二个问题,H评论但是,此值仅返回风景 或肖像。如果您还需要反向定位,我会建议查询加速度计 值以检测差异。不过,我并不熟悉Android和加速度计,足以说明如何完全做到这一点。