拔下USB时,Android传感器出现问题

时间:2010-11-20 16:02:53

标签: android accelerometer sensor

我的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(到电脑)时它变得更糟,(我使用those值来围绕像天空地图这样的物体旋转相机,当我拔掉它时,它看起来像值每2秒一次正确约1次。)

有时候(插入usb并查看logcat)它工作得很好,从来没有从两个传感器获得相同的值。

这不是我的设备,其他程序如天空图运行正常,但我不知道我做错了什么。 我从不混淆两个阵列的重力和地磁,它们是全局的,并与SensorManager.getRotationMatrix(R,gravity,geomagnetic)一起使用。

我想知道我是否只是没有得到太快的值,但即使我在监听器中定义了SENSOR_DELAY_UI,也是同样的故事。

1 个答案:

答案 0 :(得分:1)

叹息我是......

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

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

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