Как быстро сделать будильник, который будет вызывать функцию в определенное время для запуска аудиопотока? - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь быстро сделать будильник, который будет воспроизводить аудиопоток в определенное время с помощью фонового уведомления.Как мне это сделать?

В магазине приложений есть несколько приложений тревоги, которые могут что-то подобное.Одно из приложений, называемое «радио Бедр», может передавать радиостанцию ​​в течение определенного времени, которое вы выбираете при создании будильника.У него даже есть возможность бесконечного завершения потока, пока вы не остановите его.Я пытаюсь понять, как он вызывается, когда мой телефон заблокирован, или я не в приложении.Я попытался перевести телефон в режим полета, и я получил только локальное уведомление.Получив его, приложение проверяет, может ли оно запустить поток, если оно наклоняется, и будет воспроизводиться резервный сигнал тревоги.Фоновая функция вызывается, чтобы проверить, может ли она воспроизводить поток, и реагирует соответствующим образом.

Другое приложение для будильника под названием «Будильник HD» немного отличается.Когда будильник отключен, громкость будет медленно увеличиваться, даже если он находится вне приложения или когда телефон заблокирован.Я также попытался перевести телефон в режим полета и отключить приложение.Он также будет выполнять фоновую функцию без использования удаленного уведомления.

Мой общий вопрос таков;Как эти приложения выполняют вызов функции в фоновом режиме, когда приложение закрыто или даже при заблокированном телефоне?

В моем приложении я использую willPresentNotification для вызова функции, когда мое приложение находится на переднем плане.Как мне вызвать функцию после уведомления, когда приложение находится в фоновом режиме?Я знаю, что у удаленных уведомлений есть метод для этого, однако я предпочитаю не использовать сервер, если не могу найти более простое решение.

Как мне выполнить вызов функции в фоновом режиме, как этиприложения делают?Я открыт для любых объяснений, как это работает и как я могу реализовать это в своем приложении.

1 Ответ

1 голос
/ 17 апреля 2019

Вы можете использовать UNNotificationRequest с UNCalendarNotificationTrigger . Это позволит вам установить дату и время срабатывания локального уведомления. После получения разрешения на уведомление от пользователя настройте это уведомление и убедитесь, что в вашем AppDelegate есть код для обработки системных уведомлений.

...