0

iPhoneのアラーム(ローカル通知)の機能に少し混乱していて、明確な答えはまだ見つかりません。目覚まし時計(あるいは新着メール)のような機能を作りたいです。具体的には、デバイスがスリープ状態の場合、ブーンという音や音で目覚めます。(デバイスがスリープしているために)表示されないポップアップメッセージは、あまり役に立ちません。しかし、UILocalNotificationサービスを使用すると、これは発生していないようです。私はプッシュ通知をチェックアウトしていませんが、それらは何か他のもののためのもののようです。

私は何かが足りないかもしれません(そして私はそう望んでいます)ので、知っている誰かが私のためにこの問題を明確にしてください。目覚まし時計、メール、フェイスブックはすべてこれを行います。

私が今していることのコードスニペット:

// Set up the fire time
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setDay:[dateComponents day]];
[dateComps setMonth:[dateComponents month]];
[dateComps setYear:[dateComponents year]];
[dateComps setHour:[timeComponents hour]];
[dateComps setMinute:[timeComponents minute]];
[dateComps setSecond:0];
NSDate *itemDate = [calendar dateFromComponents:dateComps];
[dateComps release];

alarm.fireDate = itemDate;
alarm.timeZone = [NSTimeZone defaultTimeZone];
alarm.repeatInterval = NSDayCalendarUnit;
alarm.soundName = @"alarmsound2.m4a";
alarm.alertBody = NSLocalizedString(@"WakeUp", @"");
alarm.hasAction = YES;
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"alarm_notify" forKey:@"type"];
alarm.userInfo = infoDict;
[app scheduleLocalNotification:alarm];
[alarm release];
4

1 に答える 1

0

AppDelegateで次のコードを使用してサンプルアプリケーションを作成したところ、期待どおりに機能しました。電話がスリープモードになっているときに、デフォルトの音とアラートで通知を受け取ります。

ローカル通知はiOS4.0以降でのみ機能することに注意してください。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
      // Override point for customization after application launch.

      UILocalNotification *localNotification = [[UILocalNotification alloc] init];
      localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:60];
      localNotification.soundName = UILocalNotificationDefaultSoundName;
      localNotification.alertBody = @"Local Notification Body : Some Alert";
      localNotification.alertAction = @"Action String";

      [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
      [localNotification release];


      self.window.rootViewController = self.viewController;
      [self.window makeKeyAndVisible];
      return YES;
    }
于 2011-02-22T13:02:52.557 に答える