2013-06-11 12 views
5

alarm, powiadomienie działa dobrze w tle następująco:Local zawiadomienie w Planie

UILocalNotification *notification1=[[UILocalNotification alloc]init]; 
    notification1.fireDate=alramtime; 
    [email protected]"Training Time"; 
    notification1.repeatInterval=NSDayCalendarUnit; 

    [email protected]"Alarm.caf"; 

    /////// 
    previousnotif=[[NSUserDefaults standardUserDefaults]objectForKey:@"notif1"]; 
    previous=[NSKeyedUnarchiver unarchiveObjectWithData:previousnotif]; 

    NSLog(@"alarm %@",previous); 
    if (previous!= NULL) { 
     [[UIApplication sharedApplication]cancelLocalNotification:previous]; 
     [[NSUserDefaults standardUserDefaults]removeObjectForKey:@"notif1"]; 

    } 
    NSData *alarm1=[NSKeyedArchiver archivedDataWithRootObject:notification1]; 
    [notifdefaults setObject:alarm1 forKey:@"notif1"]; 
    ///////// 


    [[UIApplication sharedApplication] scheduleLocalNotification:notification1]; 
    NSLog(@"new alarm %@",notification1); 

ale kiedy go zmodyfikować, aby grać w planie zbyt następująco: .. jej nie working..Only alert pojawia ale nie dźwięk???

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 
{ 

UIApplicationState state = [application applicationState]; 
if (state == UIApplicationStateActive) { 


    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"KNIP" 
                message:notification.alertBody 
                delegate:self cancelButtonTitle:@"Close" 
              otherButtonTitles:nil]; 

[alert show]; 

} 
@end 

po zalogowaniu soundfile itp właściwości notification..they pracy w porządku ... ale żaden dźwięk nie jest tam ...

Odpowiedz

8

W planie trzeba zapewnić powiadomienie przeglądać i odtwarzać dźwięk, jeśli wymaga ona, powiadomienie zadzwoni pod numer applicationDidReceiveLocalNotification. Można odtwarzać dźwięk za pomocą AVAudioPlayer

//Playing sound 
     NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath],notification.soundName]]; 

     AVAudioPlayer *newAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL]; 
     self.audioPlayer = newAudioPlayer; 
     self.audioPlayer.numberOfLoops = -1; 
     [self.audioPlayer play]; 
     [newAudioPlayer release]; 
7

Jeśli aplikacja jest wszystkim i widoczny, gdy system wykonuje zgłoszenie, nie jest wyświetlany alert, ikona nie jest badged, a dźwięk nie jest odtwarzany . Jednak aplikacja: didReceiveLocalNotification: jest nazywana, jeśli delegat aplikacji ją implementuje. Instancja UILocalNotification jest przekazywana do tej metody, a delegat może sprawdzać jej właściwości lub uzyskiwać dostęp do dowolnych niestandardowych danych ze słownika userInfo o numerze .

Powiązane problemy