Я интегрировал в свое приложение распознавание встряхивания. Я поместил его в свой appdelegate, чтобы иметь возможность использовать его во всем приложении. Он отлично работает на iOS 5, но на iOS 4 не работает.
Я использую в своем appdelegate.m следующий код:
- (void)applicationDidBecomeActive:(UIApplication *)application {
[self becomeFirstResponder];
....
}
-(BOOL)canBecomeFirstResponder {
return YES;
}
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"motionBegan");
}
-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{
NSLog(@"motionEnded");
}
Если я запускаю это в симуляторе iOS5 и активирую жест встряхивания, я получаю сообщения NSLog. Если я запустил его в симуляторе iOS 4.3, он не сработает. То же самое и с реальными устройствами.