сигналы тревоги iPhone, которые просыпают устройство от сна со звуком - PullRequest
0 голосов
/ 22 февраля 2011

Я немного сбит с толку возможностями iPhone для оповещений (локальных уведомлений) и пока не нашел четкого ответа. Я хотел бы создать функциональность, как будильник (или даже новую почту). В частности, если устройство спит, оно просыпается с гудением или звуком. Всплывающее сообщение, которое вы не видите (потому что устройство спит), гораздо менее полезно. Но, похоже, что при использовании сервиса UILocalNotification этого не происходит. Я не проверял push-уведомления, но они, похоже, для чего-то другого.

Возможно, мне что-то не хватает (и я на это надеюсь), поэтому кто-то, кто знает, пожалуйста, проясните мне этот вопрос. Будильник, почта и фейсбук все это делают.

Фрагмент кода того, что я делаю сейчас:

// 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];

1 Ответ

0 голосов
/ 22 февраля 2011

Я только что создал пример приложения со следующим кодом в AppDelegate, и он работает как положено. Я получаю уведомление со звуком по умолчанию и оповещение, когда телефон находится в спящем режиме.

Обратите внимание, что локальные уведомления работают только с iOS 4.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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...