【发布时间】:2014-06-11 02:10:47
【问题描述】:
我开发了一个应用程序,用户可以在其中选择一些自定义通知声音来发出声音。当应用不在前台时,这些通知将通过简单的 AVPlayer 或通过 UILocalNotification 在应用内显示。前台警报当然总是有效的。后台警报在我的一位测试人员的 iPhone 4S 上不起作用。
起初我以为是他手机的配置问题,但我们找不到任何东西。当我开始深入研究这个问题时,我发现他运行的是 iOS 7.0.4。我尝试在运行 iOS 7 而不是 iOS 7.1 的模拟器上运行该应用程序,但 UILocalNotification 也没有任何声音。当我在我的模拟器中尝试 iOS 6.1 时,又完全没有问题了。我的运行 iOS 7.1 的硬件设备也没有重现该问题。无论什么版本,信息和标志总是显示,只是缺少声音。
然后我认为问题可能与它没有在应用程序的前台线程中运行有关。 performSelectorOnMainThread:withObject:waitUntilDone: 没有帮助。
这是相关代码:
+ (void)minimizedAppAlarm:(Settings *)settings;
{
UILocalNotification* notification = [[UILocalNotification alloc] init];
notification.alertBody = NSLocalizedString(@"WAKE_UP", @"Wake up!");
if (settings.playSound)
{
notification.soundName = @"somefile.mp3";
}
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];
}
【问题讨论】:
标签: ios objective-c ios7 uilocalnotification