[(SBMediaController *)[objc_getClass("SBMediaController") sharedInstance] isRingerMuted]
越狱环境
#define kSpringBoardPlist @"/var/mobile/Library/Preferences/com.apple.springboard.plist"
+ (BOOL)vibrateServicesEnabled
{
NSDictionary *dict;
if (kCFCoreFoundationVersionNumber >= 1000)
{
dict = [[NSUserDefaults standardUserDefaults] persistentDomainForName:@"com.apple.springboard"];
}
else
{
dict = [NSDictionary dictionaryWithContentsOfFile:kSpringBoardPlist];
}
BOOL enabled;
if (![Function ringerMutedServicesEnabled]) {
//非静音状态
enabled = [[dict valueForKey:@"ring-vibrate"] boolValue];
}
else
{
//静音状态
enabled = [[dict valueForKey:@"silent-vibrate"] boolValue];
}
return enabled;
}
CFNotificationCenterAddObserver(center, NULL, SystemPostedNotification, CFSTR("com.apple.springboard.ringerstate"), NULL, CFNotificationSuspensionBehaviorCoalesce);
CFNotificationCenterAddObserver(center, NULL, SystemPostedNotification, CFSTR("com.apple.springboard.ring-vibrate.changed"), NULL, CFNotificationSuspensionBehaviorCoalesce);
CFNotificationCenterAddObserver(center, NULL, SystemPostedNotification, CFSTR("com.apple.springboard.ring-silent.changed"), NULL, CFNotificationSuspensionBehaviorCoalesce);
//回调
static void SystemPostedNotification(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
}
//audioToolBox
- (BOOL)slicend{
#if TARGET_IPHONE_SIMULATOR
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;
}