Я хочу, чтобы мое приложение продолжало работать и взаимодействовать с пользователем, даже если пользователь нажимает кнопку спящего режима.
До сих пор я узнал, что мое приложение может остаться в живых с помощью следующего кода:
NSTimer *timer = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];<br>
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];<br>
Это успешно. Метод
- (void)timerFireMethod:(NSTimer*)theTimer<br>
будет вызываться каждые 0,5 с, даже если я нахожусь в спящем режиме.
Итак, знайте, что моя проблема: Как я могу взаимодействовать с моим приложением в спящем режиме?
Мне просто нужен триггер, чтобы начать воспроизведение собственного аудиофайла. Поэтому мне нужно событие триггера, что-то вроде обнаружения:
-сенсорный на дисплее
- ускорение активности
- событие MotionShake
Но после получения события applicationWillResignActive
ничего из вышеперечисленного не работает. Мой акселерометр останавливает доставку событий ускорения. И я не могу начать их снова.
Событие MotionShake не будет доставлено, и я не знаю, возможно ли перехватить сенсорное событие во время сна.
Обновление
Я ожидаю, что пользователь будет использовать мое приложение, скажем, 5 часов. Если какое-то время он простаивает, он сам уснет.
Я, вероятно, неправильно понял, что я имею в виду в режиме сна. Iphone должен быть включен и работать постоянно, но мне не нужно, чтобы дисплей и фоновая подсветка были включены постоянно (это наиболее энергоемкие компоненты). Я знаю, что при воспроизведении бесшумного звука каждые 10 секунд, iphone не собирается спать. И я знаю, что приложение IPod может работать в этом режиме, и пользователь может взаимодействовать с ним, встряхивая устройство. Так не существует ли официального способа для приложения сделать то же самое?
---
У кого-нибудь есть идеи?
Спасибо, Зенсурсула