最近公司在做一个软件,用户要求软件能随着手机转动自动切换横屏和竖屏,而且要求就算是手机头下脚上的倒个个软件也要能自适应的变成合适的方向。熟悉android的人都知道,android系统的手机绝大部分只支持三种屏幕方向的重力感应自动切换,竖直,水平,反方向水平,独独不支持反方向竖直的重力感应切换。我由于一次偶然刷系统刷到了cm,发现这个系统居然支持竖直方向的重力感应屏幕自动切换,于是我想,这说明系统肯定是支持这个功能的,只是被屏蔽了起来而已。于是我就想,可不可以在源码里找到时哪里被屏蔽了,那我们就可以同过java的反射来调用相关的方法来改变这个设置,让手机支持反方向竖直的重力感应屏幕自动切换,找了很久,可能是我找代码的能力太差,始终没有找到相关的设置代码,倒是意外的发现了activity原来本身就有设置屏幕方向的接口