2011-04-01 22 views
10

¿Sabes cómo puedo saber si el iPhone está en modo de vibración? No encuentro nada al respecto en la Web ... ¿Demasiado cansado para ver?iPhone - ¿Cómo puedo saber si la vibración está activada o desactivada para iOS?

Quiero mostrar un ícono en la aplicación para que el usuario pueda saber si el teléfono está en modo de vibración o no. Esa aplicación también tiene diferentes comportamientos dependiendo de si el usuario quiere ser molestado (vibrar apagado) o no (vibrar).

Gracias.

+1

le puede llamar así. ;) – ikegami

+1

Sé que no debería, pero ... * risita * –

+0

¿Qué intentas lograr sabiendo que está en modo vibración? Para la reproducción de audio? – iwasrobbed

Respuesta

9

Usted debe ser capaz de lograr esto usando:

#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

+0

Buen hallazgo. ¿Asumo que esto es seguro para la App Store? –

+0

Sí, solo son propiedades de la sesión de audio, por lo que es API pública. Más información aquí: http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html – iwasrobbed

+0

AudioSessionInitialize y AudioSessionGetProperty están en desuso en iOS 7, ¿hay alguna otra manera de hacerlo? – easythrees

Cuestiones relacionadas