私はiPhoneアラームアプリの開発の最終段階にいます
アラームは通知センターを通じて機能します。
短時間の遅延 (たとえば 2 時間) ではうまく機能します
朝は動かない(長時間遅れ8時間)
また、インターネットにアクセスできない電話でも問題なく動作するようですか?
アラーム機能を妨害する何らかの自動時間更新/同期が存在する可能性はありますか?
8時間以上の遅延は通知を無力化していますか?
アプリはフォアグラウンドにある必要がありますか?
そのため、アラームは短時間の遅延に対しては機能しますが、朝には機能しません (意図されている場合)。
まもなく Apple にアップデートを提出する予定です。
よろしくお願いします。
ヘンリー (オーストラリア)
-(void)addLocalNotification:(myAlarmData *)ma WeekDay:(int)mweekday
{
UILocalNotification *noti = [[UILocalNotification alloc] init];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *now = [NSDate date];
NSDateComponents *dcom = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit |NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit) fromDate:now];
[dcom setWeekday:mweekday];
[dcom setHour:ma.mHour];
[dcom setMinute:ma.mMinute];
[dcom setSecond:0];
NSDate *fireDate = [gregorian dateFromComponents:dcom];
noti.fireDate = fireDate;
noti.timeZone = [NSTimeZone localTimeZone];
noti.alertBody = [NSString stringWithFormat:@"Wake up %@!", [GlobalData gSettings].name];
noti.soundName = [NSString stringWithFormat:@"%@.caf", ma.soundName];
noti.alertAction = @"OK";
noti.repeatInterval = NSWeekCalendarUnit;
noti.userInfo = [[[NSDictionary alloc] initWithObjectsAndKeys:
ma.mid, @"mid",
[NSString stringWithFormat:@"%d", mweekday], @"day",
ma.soundName, @"sound",
[NSString stringWithFormat:@"%d", ma.snooze], @"snooze",
ma.title, @"title",
@"Close", @"action",
@"real", @"more",
nil] autorelease];
[[UIApplication sharedApplication] scheduleLocalNotification:noti];
[noti release];
[gregorian release];
}