Android sensor.getType()检查有时不正确

姬村

我需要获取方向值,并且遵循常见的方法:

@Override
public final void onSensorChanged(SensorEvent event) {
    switch (event.sensor.getType()){
        case Sensor.TYPE_ACCELEROMETER:
            mGravity = event.values;
            break;
        case Sensor.TYPE_MAGNETIC_FIELD:
            mGeomagnetic = event.values;
            break;
    }

    if (mGravity == mGeomagnetic){
        Log.w("Sensor", "Strange things happen!");
    }
}

public float[] getOrientation(){
    float orientation[] = new float[3];
    if (mGravity != null && mGeomagnetic != null) {
        float R[] = new float[9];
        float I[] = new float[9];
        if (SensorManager.getRotationMatrix(R, I, mGravity, mGeomagnetic)) {
            SensorManager.getOrientation(R, orientation);
            return orientation;
        } else {
            Log.w("Sensor", "getRotationMatrix() failed");
        }
    }
    return new float[]{0,0,0};
}

如您所见,我已经检查了两个分别存储的值是否相等。我之所以被迫这样做,是因为确实发生了奇怪的事情

怎么可能,如何避免这种情况?event.sensor.getType()的检查有时不正确。逻辑不起作用,我缺少什么???

这是更多的信息。Switch语句运行良好,但是无论如何变量都是混合的。

在此处输入图片说明

可能是event.values包含旧数据吗?

UPD:如果我理解正确,那么变量链接到内存中的相同位置……这是怎么回事? 在此处输入图片说明

Orip

尝试复制SensorEventvalues字段,而不要保留引用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firestore:存储架构还有更多字段或文档?在Android Sensor App中

来自分类Dev

在Android服务中不能注册多个Sensor

来自分类Dev

Android:Sensor ACCELEROMETER无法在服务中使用

来自分类Dev

Android的位置不正确

来自分类Dev

Python的hasattr有时返回不正确的结果

来自分类Dev

MSMQ:有时不正确发送或接收邮件

来自分类Dev

有时DIV在Firefox中的位置不正确

来自分类Dev

:before上的字符有时显示不正确...

来自分类Dev

在Android Lollipop上找不到Sensor.TYPE_STEP_DETECTOR

来自分类Dev

Android 10无法注册Sensor。TYPE_STEP_COUNTER

来自分类Dev

答案正确时,Android测验应用程序不正确

来自分类Dev

答案正确时,Android测验应用程序不正确

来自分类Dev

Android ViewPager加载不正确的片段

来自分类Dev

Android领域不正确的线程

来自分类Dev

android TrafficStats getUidRxBytes不正确

来自分类Dev

推送通知不正确-Android

来自分类Dev

Android上的HSV转换不正确

来自分类Dev

设置AsyncTask不正确-Android

来自分类Dev

android UI布局不正确

来自分类Dev

XML格式不正确-Android

来自分类Dev

HorizontalScrollView项目大小不正确-Android

来自分类Dev

Android textview 不正确的换行

来自分类常见问题

在Android Studio中导入ActionBarsherlock时,Gradle位置是不正确的错误

来自分类Dev

Android对话框imageView在启动时位置不正确

来自分类Dev

当EditText的输入类型为password时,Android对讲系统宣布TextInputLayout的内容描述不正确

来自分类Dev

尝试构建Android源时的Java版本不正确

来自分类Dev

将String转换为StringEntity时,Android值不正确

来自分类Dev

Android对话框imageView在启动时位置不正确

来自分类Dev

从 IntelliJ/Android Studio 运行 Gradle 时 $PATH 设置不正确

Related 相关文章

热门标签

归档