我正在尝试使用加速度计和磁力计传感器获取Android手机上用户标题的值。我一直在寻找其他许多解决方案,但在尝试实现自己的代码时遇到了一些问题。
以下是代码:
_
| |
|4|
| |
我的问题是:
答案 0 :(得分:0)
使用磁力计和加速度计您可以实时找到设备标题。即使您的设备不在平坦的表面上,这也能正常工作。
if (event.sensor.getType()==Sensor.TYPE_MAGNETIC_FIELD) {
geomag[0]=event.values[0];
geomag[1]=event.values[1];
geomag[2]=event.values[2];
}
if (event.sensor.getType()==Sensor.TYPE_ACCELEROMETER) {
float alpha = 0.8f;
gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
}
rotationMatrix = new float[16];
SensorManager.getRotationMatrix(rotationMatrix, null, gravity, geomag);
SensorManager.getOrientation(rotationMatrix,vals);
double Heading=vals[0] * (180/Math.PI);