Search code examples
iphonecocoa-touchvibration

iPhone - How do I know if the vibrate is on or off for iOS?


Do you know how I may know if the iPhone is on vibrate mode ? I don't find anything about this on the Web... Too tired to see ?

I want to display an icon in the app so that the user can know looking at it if the phone is on vibrate mode or not. Tha app has also different behaviours depending on if the user wants to be disturbed (vibrate off) or not (vibrate on).

Thank you.


Solution

  • You should be able to achieve this using:

    #import "AudioToolbox/AudioToolbox.h"
    
    - (void) ifSilentModeThenShowIcon
    {
       CFStringRef state;
       UInt32 propertySize = sizeof(CFStringRef);
       AudioSessionInitialize(NULL, NULL, NULL, NULL);
       AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
    
       if(CFStringGetLength(state) == 0)
       { 
         // phone's ringer is off so put
         // some icon showing code here
       }
    }
    

    Source