Я работаю над приложением будильника. Я использовал локальное уведомление для уведомления пользователя, оно работает нормально, когда приложение находится на переднем плане или в фоновом режиме, но когда я заблокировал экран, в это время пришло уведомление, но звук уведомления перекрывается. Проблема с перекрытием возникала только тогда, когда устройство заблокировано.
Я имею в виду приложение Alarmy, которое работает в реальном времени отлично в том же сценарии, даже если он также воспроизводит звук, когда устройство находится в беззвучном режиме.
Я также рекомендовал задать вопрос, связанный с приложением Alarmy, но это мне не помогло.
Я застрял в этой проблеме, не знаю, что делать, потому что он воспроизводит звук без перекрытия, когда экран не заблокирован. И я не могу воспроизводить звук через код, когда приходит локальное уведомление, звук звонка полностью зависит от локального уведомления.
Ниже приведен код, с помощью которого я настраиваю локальные уведомления.
func add(alarm: Alarm) -> Void {
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
let identifier = "\(alarm.id)"
let content = UNMutableNotificationContent()
content.title = applicationName
content.body = alarm.label
content.categoryIdentifier = identifier
var dict = [String: Any]()
dict["id"] = alarm.id
dict["sun"] = alarm.sun
content.userInfo = dict
content.sound = UNNotificationSound.init(named: UNNotificationSoundName.init("\(alarm.soundName).wav"))
let interval = Date.init(timeIntervalSinceReferenceDate: TimeInterval.init(alarm.time))
var i = interval.timeIntervalSince(Date())
if i < 0 {
i = 1
}
for t in 1...60 {
let triggers = UNTimeIntervalNotificationTrigger.init(timeInterval: i + 6, repeats: false)
let requests = UNNotificationRequest.init(identifier: "kathla\(t)", content: content, trigger: triggers)
UNUserNotificationCenter.current().add(requests) { (error) in
if let error = error {
print(error.localizedDescription)
}
}
i = i + 5
}
}