HarmonyOS鸿蒙Next中手机方向传感器回调数值异常

HarmonyOS鸿蒙Next中手机方向传感器回调数值异常

手机为荣耀10, 鸿蒙2.0版本; 华为p30, 鸿蒙2.0版本

使用java开发的Android应用(非鸿蒙应用)

在注册方向传感器,获取回调数值时偶现数值异常

代码在下方

sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);            
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);            
if (sensor != null) {
    orientationSensorListener = new SensorEventListener() {
        @Override
        public void onSensorChanged(SensorEvent event) {
            float[] values = event.values;
            float x = Math.abs(values[0]);
            float y = Math.abs(values[1]);
            float z = Math.abs(values[2]);
            float diffX = 0;
            float diffY = 0;
            float diffZ = 0;
            if (preX == Float.MIN_VALUE) {
                preX = x;
            } else {
                diffX = Math.abs(x - preX);
            }
            if (preY == Float.MIN_VALUE) {
                preY = y;
            } else {
                diffY = Math.abs(y - preY);
            }
            if (preZ == Float.MIN_VALUE) {
                preZ = z;
            } else {
                diffZ = Math.abs(z - preZ);
            }
            Log.e("Sensor", "====================================");
            Log.e("SensorCurrent", x + " " + y + " " + z);
            Log.e("SensorPre", preX + " " + preY + " " + preZ);
            Log.e("SensorDiff",  diffX +" "+ diffY +" "+ diffZ);                                               
            if (!isSensorTriggered && (ad.sensorThresholdValue < diffX || ad.sensorThresholdValue < diffY || ad.sensorThresholdValue < diffZ) ) {
                isSensorTriggered = true;                                                      
            }
            //只能触发一次,
            //unRegisterSensor();
            //onAdClick(ad);
        }
    };
    sensorManager.registerListener(orientationSensorListener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}

当手机平放在桌面上时,value[1]偶现数值为30多,回调几次后变为正常值零点几。请问这是什么原因导致的?如何解决?


更多关于HarmonyOS鸿蒙Next中手机方向传感器回调数值异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

我也遇到

更多关于HarmonyOS鸿蒙Next中手机方向传感器回调数值异常的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


您好,请您通过在线提单进一步解决: https://developer.huawei.com/consumer/cn/support/feedback/#/

感谢您的反馈和支持。

在HarmonyOS鸿蒙Next中,手机方向传感器回调数值异常可能由以下原因引起:

  1. 传感器校准问题:传感器可能未正确校准,建议重启设备或使用系统自带的校准工具进行校准。

  2. 系统或应用兼容性问题:可能是系统版本或应用与传感器驱动不兼容,建议更新系统或应用至最新版本。

  3. 硬件故障:传感器硬件可能出现故障,建议联系售后进行检测和维修。

  4. 代码实现问题:检查应用代码中传感器回调的实现,确保正确注册和注销传感器监听器,并处理异常情况。

建议先进行系统更新和校准,若问题依旧,再排查代码和硬件问题。

回到顶部