Why are my local notifications not having sound on by default in iOS 7?

Anthony Glyadchenko picture Anthony Glyadchenko · Oct 10, 2013 · Viewed 7.4k times · Source

My app uses geofencing and sends a notification.

By default, sounds are off in Settings - Notifications for the app.

iOS 7 to be precise.

Does anyone know how to fix this?

Here is the code responsible for this:

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
        localNotif.fireDate = [NSDate dateWithTimeInterval:5 sinceDate:[NSDate date]];
        localNotif.timeZone = [NSTimeZone defaultTimeZone];
        localNotif.alertBody = [NSString stringWithFormat:@"You are near %@. Don't forget to check in!",place.name];
        localNotif.soundName = UILocalNotificationDefaultSoundName;
        localNotif.applicationIconBadgeNumber = 0;
        [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

Answer

Enrico Susatyo picture Enrico Susatyo · Oct 11, 2013

If the sound is turned off for your app in the Settings app, then your notification will not play any sound. The user does not allow you to do that.

If the sound is not turned off in the Settings app, that code that you posted should work.

Also if the user set the ringer switch off, then there will be no sound played.