如何在android中实现'可校准'的方向监听器?

时间:2010-12-04 00:09:03

标签: android matrix rotation orientation

请查看here中的代码。

为了总结上面链接中的代码,代码声明了一个接口'OrientationListener'和'一个类'OrientationManager'。 'OrientationManager'监听'SensorEvent',并在'OrientationListenor','onTopUp()','onRightUp()','onBottomUp()'和'onLeftUp()'中调用其中一个十进制的decalred方法,如果设备的顶部,右侧,底部或左侧朝上。

如果您假设用户仅使用其设备使得设备的xy坐标与地面平行,则此功能非常有用。现实情况是,用户通常会使用他们的设备,天使会坐下来,或者在将手机倒置时放下。

如何修改此代码以允许用户“校准”他们的手机?

非常感谢帮助,这是我第二天对此进行调查而没有结果。

1 个答案:

答案 0 :(得分:0)

@Gallal,我猜你在上一个问题中已经得到了这个问题的答案?

但是,对于这里描述的这个问题(即确定哪一侧是“向上”,无论多少),您可以考虑使用加速度计读数而不是旋转矩阵。再次,在Calibrate读取您的加速度并将您读取的3个重力分量存储为Axi, Ayi, Azi。现在,假设设备始终“面朝上”,那么您可以将当前的加速度读数与初始值进行比较,以确定哪一侧“向上”(重力组件变小的那一侧)和哪一侧“向下”(一侧)重力分量变大的地方。