我的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,也是同样的故事。
答案 0 :(得分:1)
gravity = event.values;指向它。一个简单的循环,如:
for (int i=0 ; i<3 ; i++) {
gravity[i] = event.values[i];
}
没关系 (为什么我总是在询问某个地方之后才找到解决方案......)