我正在处理项目的通知部分,在此我想要通知用户有关活动的声音通知。我正在使用的代码如下:
-(void) scheduleNotificationForDate {
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateParts = [[NSDateComponents alloc] init];
[dateParts setHour:18];
[dateParts setMinute:20];
[dateParts setSecond:00];
NSDate *sDate = [calendar dateFromComponents:dateParts];
NSLog(@"date : %@", sDate);
localNotif.fireDate = sDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertAction = NSLocalizedString(@"View Details", nil);
localNotif.alertBody = @"Hello Testing";
localNotif.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
NSLog(@"notification started");
}
在此代码的帮助下,我收到了我的设备上的书面通知,但在收到通知时我没有收到任何警报声。 请查看代码并尝试找到我的错误。你的帮助会非常明显。
答案 0 :(得分:2)
看看你的控制台。
date : 0001-01-01 17:26:32 +0000
您已安排过去约2000年的通知,因为您没有指定年,月和日的组件。设置过去的fireDate意味着立即发送通知。
如果您想在18:30安排今天的通知,您可以执行以下操作:
// get year, month and day components from current time
NSDateComponents *dateParts = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]];
[dateParts setHour:18];
[dateParts setMinute:20];
[dateParts setSecond:00];
答案 1 :(得分:0)
如果您的应用处于活动状态,它将不会发出警报声,将其置于后台并进行测试。
注意:确保您的系统音量已打开。
答案 2 :(得分:0)
您可能在“设置/通知中心”中禁用了此应用的通知声音吗?