Приложение будильника в iOS - PullRequest
       35

Приложение будильника в iOS

21 голосов
/ 25 февраля 2012

Мне нужно создать приложение для будильника для iPhone, в котором пользователь может установить время и звук будильника.При этом я использовал UILocalNotification для отключения будильника.

Теперь, в UILocalNotification, сначала мы получаем уведомление об уведомлении с опциями «Закрыть» и «Просмотр».Если пользователь нажимает «Просмотр», то мой делегат получает сообщение application:didReceiveLocalNotification: и воспроизводится звуковой сигнал тревоги.

Но в системном приложении тревоги мы не видим оповещения;он просто воспроизводит звук будильника.Как я могу заставить мое приложение использовать это поведение?

Ответы [ 4 ]

34 голосов
/ 08 марта 2012

Я согласен с Дэвидом. Встроенное в iOS приложение будильника получает специальную обработку от Apple, чтобы звучать> 30 секунд в фоновом режиме. Кажется, что он использует какой-то частный API, чтобы заставить его звучать дольше, даже если он находится в фоновом режиме или закрыт. Это недоступно для других приложений, созданных за пределами Apple, поэтому даже не пытайтесь конкурировать с ним. Если вы купите все приложения-будильники в App Store (также одобренные Apple) и попробуете их одно за другим, вы увидите, что у них нет встроенного приложения-будильника в самой важной функции будильника: «Звук». в течение длительного времени в любом состоянии приложение находится в активном (фоновом режиме или закрыто) "

Лучшая ставка для имитации фоновой тревоги - использовать UILocalNotification в течение 30 секунд. Если вы действительно хотите разбудить своего тяжелого спящего, по расписанию запустите пять из этих уведомлений с интервалом в шестьдесят секунд или что-то в этом роде в надежде, что они проснутся до того, как закончится пятое уведомление.

Обратите внимание, что с помощью этого метода ваш пользователь, который пропустит сигнал тревоги, получит 5 всплывающих окон на своем экране, когда они проснутся (меньше, если они проснутся во время одного из всплывающих окон тревоги), поэтому они будут тратить свои первые секунды их утреннее закрытие этих всплывающих окон - не лучший пользовательский опыт.

Вывод: приложения-будильники хороши только для переднего плана. Лучшим приложением Alarm, которое будет работать в любом состоянии, является встроенное приложение Clock от Apple.

6 голосов
/ 25 февраля 2012

Это поведение тревоги недоступно для приложений iOS. У вас есть возможность создавать локальные уведомления и добавлять к ним звуки, но длина звука ограничена. Вы не можете непрерывно воспроизводить звук, например, встроенный будильник.

Один из вариантов - повторить оповещения. Таким образом, ваше приложение отправит уведомление, подождите некоторое время, а затем отправит другое. Вы повторяете указанное количество раз или пока пользователь не будет взаимодействовать с вашим приложением. Я не думаю, что это обеспечит отличный пользовательский опыт, поэтому я не рекомендую его.

3 голосов
/ 25 февраля 2012

Я почти уверен, что у вас может быть свой собственный звук локального уведомления.

Пример кода localNotif.soundName = @"alarmsound.caf";

Обратите внимание, что звук локального уведомления должен быть только 30 секунд или меньше, чтобыиграл.Вы можете получить больше информации здесь .

0 голосов
/ 18 августа 2017

Если вы включите фоновые режимы «Аудио, AirPlay и картинка в картинке» и «Удаленные уведомления», вы можете использовать автоматическое push-уведомление, чтобы разбудить устройство и затем начать воспроизведение звука, и пока вы При воспроизведении аудио у вас не будет 30 секунд, чтобы ответить на уведомление, как обычно. Это не сработает, если приложение было убито пользователем вручную, но если пользователь это сделает, вы можете отправить локальное уведомление с просьбой повторно открыть приложение.

...