加速度计不适用于iphone4

时间:2011-01-30 05:19:22

标签: iphone xcode ios4 accelerometer

我使用以下代码加速度计,适用于ipod 3g ,但不适用于 iphone4 (不显示警报)

·H

#define kAccelerationThreshold      2.2
#define kUpdateInterval         (1.0f/10.0f)

的.m

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIAccelerometer *accel=[UIAccelerometer sharedAccelerometer];
    accel.delegate=self;
    accel.updateInterval=kUpdateInterval;
}

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    if (fabsf(acceleration.x) > kAccelerationThreshold || fabsf(acceleration.y) > kAccelerationThreshold || fabsf(acceleration.z) > kAccelerationThreshold)
    {
         UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Shake" message:@"" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
      [alert show];

    }
}

3 个答案:

答案 0 :(得分:1)

将您的代码复制到一个新项目中 - 为了使其工作,我必须将kAccelerationThreshold值降低到1.5左右 - 这仍然需要相当猛烈的震动。

仅在iPhone 4上测试过。

答案 1 :(得分:0)

查看UIAccelerometer Class Reference

请务必在标题中实施UIAccelerometerDelegate协议。

答案 2 :(得分:0)

accel=updateInterval=kUpdateInterval;

看起来应该是

accel.updateInterval=kUpdateInterval;