如何在Android中禁用自动旋转时屏幕方向更改?

问题描述:

在我的应用我禁用自动方向,但我还是想听听方向改变的方法。
我试图重写onConfigurationChanged,但我想,当自动旋转被禁用,它不叫。
我建立在API 8上。如何在Android中禁用自动旋转时屏幕方向更改?

感谢

我会看看如何读取加速度计或陀螺仪,做到这一点。我不确定这是否有效,但这就是我开始的方式。这里有一个关于如何使用加速度计数据的链接。

http://www.techrepublic.com/blog/app-builder/a-quick-tutorial-on-coding-androids-accelerometer/472

+0

我考虑读取直接从传感器的角度,但它似乎是太多不稳定,因此将被保持,即使当手机被放置在平坦表面上,然后我将不得不开始进行计算,并添加一些阈值变更/滞后,我不想这样做... – SagiLow 2013-03-27 20:15:26

+0

这对你有帮助吗? http://stackoverflow.com/questions/8248274/android-detect-orientation-changed – ArchiFloyd 2013-03-27 20:22:33

+0

嗯......它可能会做的工作,但我更怕的内存中运行代码的时候有这个程序会消耗(因为传感器一直在变化,所以它会被称为非停止状态),它可能太多了,但我想这是一个选项 – SagiLow 2013-03-27 20:34:29

我使用此代码自己在我的应用程序:

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)) 
      .getDefaultDisplay(); 
    int rotation = display.getRotation(); 

rotation值可以如下:景观1或3和0或2肖像。

我不是100%肯定,如果,如果汽车不能转动,虽然这会工作,但你可以给它一个尝试。

+0

谢谢,但我不明白它将如何帮助我倾听方向变化... – SagiLow 2013-03-27 20:28:24

+0

好的,这个比我想象的麻烦......我用它在'onCreate'方法,但因为你禁用自动定位,它不会被当屏幕旋转时调用... – 2013-03-27 20:35:32