2011-04-01 104 views
10

你知道我怎麼知道iPhone是否處於振動模式? 我在網上找不到任何關於這個的東西...太累了看?iPhone - 我如何知道iOS的振動是打開還是關閉?

我想在應用程序中顯示圖標,以便用戶可以知道在手機處於振動模式時是否正在查看它。 Tha應用程序也有不同的行爲,取決於用戶是否想要受到干擾(振動)或不振動(振動)。

謝謝。

+1

你可以調用它。 ;) – ikegami 2011-04-01 23:15:46

+1

我知道我不應該這樣做,但是...... * snicker * – 2011-04-01 23:22:45

+0

你知道它是在振動模式下想達到什麼目的?用於音頻播放? – iwasrobbed 2011-04-02 00:22:45

回答

9

您應該能夠使用這個實現:

#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

很好找。我認爲這對App Store來說是安全的? – 2011-04-02 01:30:07

+0

是的,這些只是音頻會話屬性,所以它是公共API。更多信息:http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html – iwasrobbed 2011-04-02 02:06:46

+0

AudioSessionInitialize和AudioSessionGetProperty在iOS 7中已棄用,是否有其他方法可以做到這一點? – easythrees 2014-01-12 21:35:21

相關問題