[sensor]如何解决旋屏应用受马达影响的case
[DESCRIPTION]
Camera等应用的旋屏和一般界面的旋屏(指打开设置->显示->自动旋转屏幕 后产生的)所采用的算法不一样,后者的
算法限制条件要多得多,且有一定滞后性,涉及到的文件为windowOrientationListener.java。
前者则灵敏得多,容易受外部干扰的影响而导致错误的旋屏:如闹钟的马达响时Camera UI乱转,涉及到的文件为
OrientationEventListener.java
[PLATFORM]
MT6575 MT6577 MT6589
[SOLUTION]
1.请把cust_acc.c里的.fillen=0====>filter=10或者16看看 即是底层先做这么多次平
均之后再上报,防止上报MTK技术的数据有毛刺的现象发生
2.或者在OrientationEventListener.java的onSensorChanged函数内的最后
if(orientation!=mOrientation){
//在这里面加更多的判断条件,即过滤 让函数不能轻易的调后面的
onOrientationChanged函数
比如,可以判断连续2次数据,前一次为mOrientation,最新的当前这次为
orientation,差值不超过某个范围,如50(这是针对实际数据特性所设置的) 才调后面
的onOrientationChanged函数(这个函数会被Camera或者其他的引用模块用到),否则
直接return.
这样可以防止毛刺的出现
}
请上面2种方法分别做测试,或者一起测试 方法2更有针对性一些
Camera等应用的旋屏和一般界面的旋屏(指打开设置->显示->自动旋转屏幕 后产生的)所采用的算法不一样,后者的
算法限制条件要多得多,且有一定滞后性,涉及到的文件为windowOrientationListener.java。
前者则灵敏得多,容易受外部干扰的影响而导致错误的旋屏:如闹钟的马达响时Camera UI乱转,涉及到的文件为
OrientationEventListener.java
[PLATFORM]
MT6575 MT6577 MT6589
[SOLUTION]
1.请把cust_acc.c里的.fillen=0====>filter=10或者16看看 即是底层先做这么多次平
均之后再上报,防止上报MTK技术的数据有毛刺的现象发生
2.或者在OrientationEventListener.java的onSensorChanged函数内的最后
if(orientation!=mOrientation){
//在这里面加更多的判断条件,即过滤 让函数不能轻易的调后面的
onOrientationChanged函数
比如,可以判断连续2次数据,前一次为mOrientation,最新的当前这次为
orientation,差值不超过某个范围,如50(这是针对实际数据特性所设置的) 才调后面
的onOrientationChanged函数(这个函数会被Camera或者其他的引用模块用到),否则
直接return.
这样可以防止毛刺的出现
}
请上面2种方法分别做测试,或者一起测试 方法2更有针对性一些