Акселерометр не работает на iphone4 - PullRequest
0 голосов
/ 30 января 2011

Я использую приведенный ниже код для акселерометра, и он работает на 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 ]

1 голос
/ 31 марта 2011

Скопировал ваш код в новый проект - чтобы заставить его работать, мне пришлось снизить значение kAccelerationThreshold примерно до 1,5 - что все еще требует довольно сильного колебания.

Проверено только на iPhone 4.

0 голосов
/ 30 января 2011
accel=updateInterval=kUpdateInterval;

Похоже, что должно быть

accel.updateInterval=kUpdateInterval;
0 голосов
/ 30 января 2011

Проверьте справочник классов UIAccelerometer .

Обязательно также используйте протокол UIAccelerometerDelegate в своем заголовке.

...