0

我对 HTC 的渴望有一种奇怪的问题。

我目前使用加速度计和地磁传感器测试了一些 opengl 的东西。

似乎他们两个有时(相当多)返回完全相同的值。

我在我的 onSensorChanged() 上得到了这个

    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        gravity = event.values;
    } 
    if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
        geomagnetic = event.values;
    }

而且我不知道为什么,但是当我拔下USB(连接到计算机)时,情况变得更糟了,(我使用这些值围绕诸如天空图之类的对象旋转相机,当我拔下电源时,看起来这些值是正确的1 每 2 秒 1 次 ~)。

有时(插入usb并查看logcat)它工作得很好,并且永远不会从两个传感器获得相同的值。

这不是我的设备,天空地图等其他程序运行良好,但我不明白我做错了什么。我从未将重力和地磁这两个阵列混为一谈,它们只是全局的,并与 SensorManager.getRotationMatrix(R,gravity,geomagnetic) 一起使用。

我想知道我是否只是没有太快地获得值,但即使我在侦听器中定义 SENSOR_DELAY_UI ,它也是同一个故事。

4

1 回答 1

1

叹息我....

重力 = event.values; 指向它。一个简单的循环,如:

for (int i=0 ; i<3 ; i++) {
            gravity[i] = event.values[i];
}

没关系(为什么我总是在某处询问后找到解决方案......)

于 2010-11-22T11:04:18.153 回答