我对本地通知有这个问题,他们没有播放声音。我测试了默认的一个和自定义的那个显然是我想玩但没有!我看了很多人都面临这个问题,但他们的解决方案都没有对我有用。
UILocalNotification *local
- (IBAction)Dateaction:(id)sender {
local = [[UILocalNotification alloc]init];
local.timeZone = [NSTimeZone defaultTimeZone];
local.alertBody = [NSString stringWithFormat:@"%@ Recuerda que tienes que: %@", [[NSUserDefaults standardUserDefaults] objectForKey:@"user"], [[NSUserDefaults standardUserDefaults] objectForKey:@"selected"]];
local.fireDate = [self.DatePicker date];
/* if ([[self.userdefaults objectForKey:@"sound"]isEqualToString:@"sound1"]) {
local.soundName = @"sound1.caf";
}else if([[self.userdefaults objectForKey:@"sound"]isEqualToString:@"sound2"]){
local.soundName = @"sound2.caf";
}else if([[self.userdefaults objectForKey:@"sound"]isEqualToString:@"sound1"]){
local.soundName = @"sound3.caf";
}else{
local.soundName = @"sound1.caf";
}*/
local.soundName = UILocalNotificationDefaultSoundName;
}
- (IBAction)switchChanged:(id)sender {
if(self.NotSwith.isOn == YES){
[[UIApplication sharedApplication] scheduleLocalNotification:local];
}
}
答案 0 :(得分:6)
可能是一个相对简单的解决方案:你能测试它是否在模拟器中有效吗?如果它在模拟器中工作而不在设备中,我建议确保静音开关没有打开(昨天花了4个小时搞清楚)。
答案 1 :(得分:2)
嗯, 有趣的是,我改变了
的顺序notification.SoundName = UILocalNotification.DefaultSoundName;
notification.ApplicationIconBadgeNumber = 1;
到
notification.ApplicationIconBadgeNumber = 1;
notification.SoundName = UILocalNotification.DefaultSoundName;
现在可以使用了。当应用程序在后台运行时,本地通知将触发并播放默认通知声音。
答案 2 :(得分:0)
确保使用
清除旧通知UIApplication* app = [UIApplication sharedApplication];
NSArray* oldNotifications = [app scheduledLocalNotifications];
//在安排新通知之前清除旧通知。
[app cancelAllLocalNotifications];
如果您不想取消所有通知,请尝试更改徽章编号和声音名称的顺序。
希望这可以解决您的问题。
答案 3 :(得分:0)
在我的情况下,模拟器工作正常。 iPad将播放音乐等 问题是: 在iPad上的音量控制旁边,振铃开关处于关闭状态。 这阻止了警报声音通过。