如何确定一个平面中手机方向的角度?
现在我通过SensorManager实现:
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
...
public void onSensorChanged(SensorEvent event) {
xy_angle = event.values[0];
xz_angle = event.values[1];
zy_angle = event.values[2];
这里我得到不同的角度,但我只需要一个角度,这个角度随着手机的旋转而变化,同时沿着蓝线行驶。
怎么计算或如何得到这个角度?
How can I use SensorManager.getOrientation for tilt controls like "My Paper Plane"? - 这里有类似的问题,但我不明白作者如何解决他的问题。
答案 0 :(得分:2)
答案 1 :(得分:2)
我看到这篇文章有点陈旧,所以现在可能已经回答了,但Sensor.TYPE_ORIENTATION
现已弃用,而不是SensorManager.getOrientation()。
我已经完成了基本上你正在寻找的内容的全文:http://blog.samsandberg.com/2015/05/10/tilt-for-android/
希望它有助于某人寻找同样的事情!
答案 2 :(得分:0)
该问题的作者通过切换参数顺序解决了他的问题:
if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
m_lastMagFields, m_lastAccels)) {
为:
if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
m_lastAccels, m_lastMagFields)) {