如何在面朝上时检测iPhone是否正在旋转?

Osc*_*mez 3 iphone rotation detect orientation

有没有办法检测躺在桌子上的iphone是否正在旋转?我确实意识到加速度计没有报告这种运动,也没有报告 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation方法.

有没有办法检测手机旋转的角度变化?谢谢.

pro*_*rmr 9

重力矢量在平台上旋转时将保持不变,因此您不会在加速度计上看到任何东西.您可以按照罗盘方向更改来检测此旋转,但仅限于iPhone 3G S.有关详细信息,请参阅CLLocationManager,查看标题方法.

编辑 - 使用iPhone 4,您可以使用陀螺仪检测旋转.iOS 4中有一个名为CMMotionManager的新类,用于获取陀螺仪的旋转速率.


kub*_*ubi 5

当手机静止时,加速度矢量的总和应为+1.当手机正在旋转时(假设传感器偏离中心),矢量的总和应该大于1并且(希望)有些恒定.

如果你看一下那条曲线的衰减,如果这个形状足够独特,可以用来判断手机是否在旋转,我不会感到惊讶.

替代文字http://i39.tinypic.com/14vnztx.png

这是Apple 的AccelerometerGraph示例应用程序.