有没有办法确定iPhone上的Ring / Silent开关的设置

时间:2011-02-18 02:07:52

标签: iphone

我试图从我的代码中找出Ring / Silent开关是响铃还是静音。有没有办法从我的程序中确定这一点。

由于

2 个答案:

答案 0 :(得分:2)

我做了一些搜索,并在How to detect iphone is on silent mode找到了同样的问题。

为了完整起见,Neil的答案对我有用吗?

CFStringRef state = nil;
UInt32 propertySize = sizeof(CFStringRef);
AudioSessionInitialize(NULL, NULL, NULL, NULL);
OSStatus status = AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);

if (status == kAudioSessionNoError) { 
    return (CFStringGetLength(state) == 0);   // YES = silent
}
return NO;

应该注意,如果连接了耳机,这将不起作用。你将永远得到“HeadPhone”。这也是由coob报道的。

答案 1 :(得分:0)

答案是否定的。

您可以配置音频会话受交换机影响的方式,但无法判断它是打开还是关闭。