如何检测手机的倾斜?

3

如何确定手机在一个平面内的方向角度?

现在我通过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]; 

这里我得到不同的角度,但我只需要一个角度,它随着手机旋转而变化,沿着蓝线行驶。

如何计算或获取这个角度?

http://i.stack.imgur.com/kCElj.jpg

如何使用SensorManager.getOrientation进行类似“我的纸飞机”倾斜控制? - 这里有类似的问题,但我不明白作者是如何解决他的问题的。


如果你找到了解决方案,请分享。 - Aashish Bhatnagar
3个回答

2

抱歉,博客被垃圾邮件淹没了,所以我把它撤下来,直到我有机会修复它。现在已经修好了! - Loisaida Sam Sandberg

2

0

那个问题的作者通过交换参数顺序解决了他的问题:

 if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
                                    m_lastMagFields, m_lastAccels)) {

to:

if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
                                m_lastAccels, m_lastMagFields)) {

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接