Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

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