Как заметить быстрое движение вперед, если didAccelerate устарел?

Что я хочу сделать, это прочитать ускорение.y и сделать что-то вроде:

if (acceleration.y > 0.8) {
   // Do something
}

Поскольку didAccelerate устарел, мне интересно, как получить значение y:

motionManager = [[[CMMotionManager alloc] init] autorelease];
motionManager.accelerometerUpdateInterval = kUpdateInterval;

if (motionManager.accelerometerAvailable) {
    [motionManager startAccelerometerUpdates];
}
else {
    //this device doesn't have accelerometer notice somewhere??
}

- (void)startAccelerometerUpdates {
 // READ Y-VALUE?????
}

Я хочу использовать необработанные данные акселерометра, чтобы приложение также работало на 3GS. Можно ли прочитать значение Y?


person Michael    schedule 28.12.2011    source источник


Ответы (2)


РЕДАКТИРОВАТЬ: приведенный ниже ответ устарел, проверьте эти сообщения для правильного пути.


Старый ответ:

Используйте для этого одноэлементный экземпляр UIAccelerometer, например, в вашем AppDelegate.

//in your launching method
    UIAccelerometer * accel = [UIAccelerometer sharedAccelerometer];
    accel.delegate = self;

//delegate method:
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
    // use the y-property of the acceleration
}
person Marc-André Weibezahn    schedule 28.12.2011
comment
Да, ты прав. Просто любопытно, что вас отпугнуло от публикации информации об актуальном решении;) Я отредактирую свой ответ. - person Marc-André Weibezahn; 03.07.2012

Посмотрите на ссылка на класс CMMotionManager и раздел поиска под названием "Передача обновлений движения через указанные интервалы". В пуле "Акселерометр" написано

Задайте свойство accelerometerUpdateInterval, чтобы указать интервал обновления. Вызовите метод startAccelerometerUpdatesToQueue:withHandler:, передав блок типа CMAccelerometerHandler. Данные акселерометра передаются в блок как объекты CMAccelerometerData.

CMAccelerometerData содержит ссылку на CMAcceleration, которая является структурой, содержащей ускорение по осям.

person barley    schedule 28.12.2011