问题
Is it possible to programmatically check if the system option of iPhone
Settings -> Sounds -> Vibrate on Ring
is enabled?
In my app, I would like to display an alert to the user if that option is disabled.
回答1:
You cannot. Because apple is not providing the API to access the iPhone settings app.
回答2:
may be you could give it a try and make sure you're running the app in iDevice because simulator don't have silent or ring mode :)
New Edits
-(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;
}
and you can call this method like this way
if ([self silenced])
{
NSLog(@"silenced");
} else {
NSLog(@"not silenced");
}
hope it will help you!
来源:https://stackoverflow.com/questions/19295480/iphone-programmatically-check-if-vibration-is-enabled