我正在尝试在后台唤醒应用程序。我看到一个应用程序在本地通知到达时在后台唤醒应用程序。应用名称为“警报”-https://itunes.apple.com/us/app/alarmy-alarm-clock/id1163786766?mt=8
我发现在后台启动应用程序的一个提示-“对于音频应用程序,音频框架需要该应用程序处理一些数据。(音频应用程序包括那些播放音频或使用麦克风的应用程序。)”但是我没有找不到任何技术帮助。
关于Alarmy应用程序,我在这里发现了2或3个问题,他们都说他们正在通过AVAudioSession类别播放来播放无声声音。 我确实尝试过,但是当本地通知到来时,它并不能帮助我唤醒应用程序。
直到现在,我都进行了无声音频的无限循环,并且还设置了音频会话,但无法唤醒应用程序。
let audioSession = AVAudioSession.sharedInstance()
try? audioSession.setCategory(.playback, mode: .default, options: .mixWithOthers)
try? audioSession.setActive(true)
audioPlayer = try! AVAudioPlayer.init(contentsOf: URL.init(fileURLWithPath: Bundle.main.path(forResource: "Birthday_6", ofType: "mp3")!))
audioPlayer?.numberOfLoops = -1
audioPlayer?.play()
如果有人在AVAudioSession上有想法要像定位服务一样唤醒应用程序,请告诉我。
答案 0 :(得分:0)
根据我的观察,Alarmy应用程序在设置警报的指定时间内设置了x
条本地通知。
当应用程序进入后台时,他们正在设置x
个本地通知数量。并在应用程序进入前台时使所有待处理的通知无效。这是一个循环,当应用程序进入前台并返回到后台时,它将继续重复。
终止时,它们会在那一刻触发一条通知,要求用户在指定时间内将应用保持在后台打开状态,同时x
条通知会在指定时间内显示。
当应用不在前台时,会在警报时间触发x
号通知,在每个通知之间有一个特定的时间间隔,这就是正在播放的声音的长度,使被触发的通知的音乐或声音具有连续性。
当警报触发时,如果应用程序正在运行,它将像常规警报一样响起,直到将其关闭。如果您单击“关闭”以外的任何内容,或者在这段时间内强行关闭了应用程序,则会触发前面提到的循环,并会继续使用本地通知发出声音,直到单击应用程序中的“关闭”按钮为止。