2011-04-01 98 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

相关问题