安卓11重力感应不灵敏问题

在安卓11上调试da218-gsensor芯片,底层数据上报正常,但就是在机器旋转的时候,系统旋转时灵时不灵,排除底层数据的问题,直接打开frameworks\base\services\core\java\com\android\server\policy\WindowOrientationListener.java

看这里监听处理数据的位置,日志打开后,发现不灵敏的时候一直报:Ignoring sensor data, device is overhead: tiltAngle=-88 ,就是底层的数据在处理的时候被忽略了,找到代码位置:

复制代码
public void onSensorChanged(SensorEvent event) {

                // If the tilt angle is too close to horizontal then we cannot determine
                // the orientation angle of the screen.
                if (tiltAngle <= TILT_OVERHEAD_ENTER) {
                    mOverhead = true;
                } else if (tiltAngle >= TILT_OVERHEAD_EXIT) {
                    mOverhead = false;
                }
                if (mOverhead) {
                    if (LOG) {
                        Slog.v(TAG, "Ignoring sensor data, device is overhead: "
                                + "tiltAngle=" + tiltAngle);
                    }
                    clearPredictedRotationLocked();
                } else if (Math.abs(tiltAngle) > MAX_TILT) {
                    if (LOG) {
                        Slog.v(TAG, "Ignoring sensor data, tilt angle too high: "
                                + "tiltAngle=" + tiltAngle);
                    }
                    clearPredictedRotationLocked();
                }
                直接吧这个宏修改为:
                        private static final int TILT_OVERHEAD_ENTER = -100;

问题解决,反正机器只需要4个方向旋转,其他的特殊的功能不需要,误差大点无所谓,这样修改能满足产品需求就行

相关推荐
_小马快跑_11 分钟前
Android 布局优化:利用 ViewStub 和 Merge 提升性能
android
yuanManGan15 分钟前
C++入门小馆: 深入了解STLlist
开发语言·c++
北极的企鹅8815 分钟前
XML内容解析成实体类
xml·java·开发语言
BillKu19 分钟前
Vue3后代组件多祖先通讯设计方案
开发语言·javascript·ecmascript
Python自动化办公社区21 分钟前
Python 3.14:探索新版本的魅力与革新
开发语言·python
逐光沧海28 分钟前
STL常用算法——C++
开发语言·c++
_小马快跑_30 分钟前
Android | 通过 layer-list 设置默认加载错误图片
android
星火撩猿36 分钟前
ubantu中下载编译安装qt5.15.3
开发语言·qt
_小马快跑_1 小时前
ConstraintLayout之layout_constraintDimensionRatio属性详解
android
球求了1 小时前
C++:继承机制详解
开发语言·c++·学习