在我的应用程序中,我需要在后台或屏幕锁定时更新位置。当用户接近某个指定位置(警报位置)时,应用程序会发出声音通知。当他们接近时,应用会发出一声哔哔声,下一次发出哔声两次,下一次发出哔声三次。

我知道如何在后台更新位置,但是在声音提示方面遇到困难。我在AudioServicesPlaySystemSound中使用音频会话

do {
   let audioSession = AVAudioSession.sharedInstance()
   audioSession.setCategory(AVAudioSessionCategoryPlayback)
   try audioSession.setActive(true)
} catch {
   print("session does not init")
}
/* *** */
AudioServicesPlaySystemSound(beepSound)


我的算法如下:
找到最近的警报位置后,应用程序会发出蜂鸣声。

它在前景中工作,但在锁定屏幕下则不行。

最佳答案

您需要在锁定屏幕下允许进行通知,而这样做则需要征询用户的许可。在applicationAppDelegate函数中添加以下内容:

let notificationCategory = UIMutableUserNotificationCategory()
let categories = Set<UIUserNotificationCategory>(arrayLiteral: notificationCategory)
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: categories)
application.registerUserNotificationSettings(settings)

关于ios - 后台通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37454124/

10-11 06:40