windowOrientationListener.java中有个全局变量定义了gap区的大小,
ADJACENT_ORIENTATION_ANGLE_GAP,默认值是45,
通过函数isOrientationAngleAcceptable来控制gap区的作用;
所以真正的默认旋转角度临界值是45 + GAP/2 = 45 + 45/2 = 67.5度
【修改默认角度临界值的例子】
1. 如果要修改成在超过45度的角度旋转,并且横竖屏切换角度一致,就比较简单
比如要在60度旋转,那么只需要计算GAP = (60-45)*2 = 30
将ADJACENT_ORIENTATION_ANGLE_GAP改成30
如果是高通平台,要用google算法,默认是高通算法
/* wangdonghai add begin Rotation algo issue [solution]:qcom algo change to google algo
if (mSensor != null) {
mOrientationJudge = new OrientationSensorJudge();
} */
//wangdonghai add end
if (mOrientationJudge == null) {
mSensor = mSensorManager.getDefaultSensor(USE_GRAVITY_SENSOR
? Sensor.TYPE_GRAVITY : Sensor.TYPE_ACCELEROMETER);
if (mSensor != null) {
// Create listener only if sensors do exist
mOrientationJudge = new AccelSensorJudge(context);
}
}
}