我会在这里写出我能写的东西,但标题几乎说明了一切。我已经在几种不同的情况下进行了测试:
1)手机开机、静音模式关闭、应用开机、前台、屏幕解锁
我知道这通过了app delegate的didReceiveLocalNotification,除了我在didReceiveLocalNotification下包含的处理代码之外,并不期望有声音或振动。实际调用的处理代码
NSURL *Sound = [[NSBundle mainBundle] URLForResource: self.currentSoundPVC
withExtension: @"caf"];
// Create a system sound object representing the sound file.
AudioServicesCreateSystemSoundID (soundFileURLRef,&soundFileObject);
AudioServicesPlayAlertSound (soundFileObject);
这实际上是有效的!它可以同时播放声音和震动手机。
2)手机开机、静音模式关闭、应用开机、后台、屏幕解锁
现在,我使用以下代码在应用程序委托的applicationDidEnterBackground中设置了我的uilocalnotification警报
NSString *Sound = [self.currentSoundPVC stringByAppendingString:@".caf"];
UILocalNotification* alarm = [[[UILocalNotification alloc] init] autorelease];
alarm.fireDate = [NSDate dateWithTimeIntervalSinceNow:seconds];
[alarm setSoundName:Sound];
[[UIApplication sharedApplication] scheduleLocalNotification:alarm];
这只起到了部分作用!声音可以播放,但没有振动!现在,我认为这是一个bug,因为我引用了苹果开发者网站上的话,
http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html,Scheduling the Delivery of Local Notification部分:
发送通知并播放声音时,系统还会在支持它的设备上触发振动。
现在,显然这不是我的iPhone的情况,显然模拟器不振动,所以我不能测试它,并希望在开发人员社区解决这个问题!
3)手机开机、静音模式关闭、应用开机、前台、锁屏
与#2相同
4)手机开机、静音模式关闭、应用开机、后台、锁屏
与#2相同
5)手机开机、静音模式关闭、应用关闭(后台进程删除)
与#2相同,因为because通知从未被取消,所以iOS仍然认为它们是有效的。
6)手机开机、静音模式开启、应用开启、后台、屏幕解锁
没有声音,没有震动,什么都没有!这太糟糕了!我本希望苹果能像往常一样直接拿出开箱即用的东西!
发布于 2014-06-19 23:24:44
以下是选项和效果(都假设音量设置为某个合理的值):
选项1:
配置:
行为:
通知时播放
选项2:
配置:
在应用程序的Yes
行为:
通知时播放
选项3:
配置:
在应用程序的Yes
行为:
通知时播放
选项4:
配置:
在应用程序的Yes
行为:
通知时播放
发布于 2011-03-27 06:27:28
下面的代码通过声音和振动工作:
// Create a new notification
UILocalNotification * notif = [[[UILocalNotification alloc] init] autorelease];
if (notif)
{
notif.repeatInterval = 0;
notif.alertBody = @"NOTIFICATION!!"];
notif.soundName = @"sound.caf";
notif.alertAction = NSLocalizedString(@"View", @"View");
[[UIApplication sharedApplication] presentLocalNotificationNow:notif];
}
我知道这听起来可能有点傻,但是你可能在你的iPhone设置中关闭了震动?
发布于 2011-03-28 10:27:12
很抱歉将此作为答案发布,但我的评论太长了,无法在您的评论下面发布。所以我只是把一个片段放在这里,其余的放在这里。这是对托尼·米勒的回答的回复。
你好,托尼,谢谢你的意见,但是我不确定你所做的改变对哪件事有影响。如果我没有记错的话,您更改了以下项目:
1) scheduleLocalNotification --> presentLocalNotificationNow
2)显式设置UILN repeatInterval
3)显式设置UILN alertBody
4)显式设置UILN alertAction
除了这四个变化之外,我看不到其他任何变化。你认为这些因果变化中的哪一个对你有预期的效果。
Lol...no需要感觉这是一个愚蠢的问题。虽然,我在我的帖子中提到了“静默模式开/关”,但我没有具体说明这是什么意思。我特别说的是电话边上的开关。我甚至没有想过要检查iPhone设置!哈哈!所以,这是一个很好的问题!然而,不幸的是,它并没有关闭,在OrigPost的场景#1中,它成功地振动了。
https://stackoverflow.com/questions/5443848
复制相似问题