iosiphoneios7

Detect silent mode in iOS 7


is there any way to detect silent mode in iOS 7?

the following code does not work for iOS 5 or later version

-(BOOL)silenced {
     #if TARGET_IPHONE_SIMULATOR
         // return NO in simulator. Code causes crashes for some reason.
         return NO;
     #endif

    CFStringRef state;
    UInt32 propertySize = sizeof(CFStringRef);
    AudioSessionInitialize(NULL, NULL, NULL, NULL);
    AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
    if(CFStringGetLength(state) > 0)
            return NO;
    else
            return YES;

   }

Solution

  • Check this thread - Detecting the iPhone's Ring / Silent / Mute switch using AVAudioPlayer not working?

    And this API - SoundSwitch

    How it works:

    Enjoy!