Detecta el modo silencioso en iOS5?

He utilizado este método en el pasado para detectar si el interruptor silencioso está habilitado:

- (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; } 

Esto ya no funciona en iOS5 en mi iPad o iPhone. ¿Es esto un problema conocido? No he podido encontrar ninguna respuesta en desbordamiento de stack o foros de desarrollo de Apple.

Espero que puedas ayudar …

Ya no podremos detectar el estado del interruptor silencioso desde iOS 5 …

La respuesta de Apple está ahí en la respuesta aceptada: ¿La detección del interruptor Ring / Silent / Mute del iPhone utilizando AVAudioPlayer no funciona?

Como se menciona en la Biblioteca del desarrollador de iOS, la propiedad kAudioSessionProperty_AudioRoute está en desuso. En su lugar, use kAudioSessionProperty_AudioRouteDescription

https://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html

Esta pregunta se ha respondido aquí: ¿ Detecta el interruptor Ring / Silent / Mute del iPhone utilizando AVAudioPlayer no funciona?