0
是否有可能,如果iPhoneiPhone:如果振动启用
Settings -> Sounds -> Vibrate on Ring
的系统选项启用以编程方式检查程序检查?
在我的应用程序中,如果该选项被禁用,我想向用户显示警报。
是否有可能,如果iPhoneiPhone:如果振动启用
Settings -> Sounds -> Vibrate on Ring
的系统选项启用以编程方式检查程序检查?
在我的应用程序中,如果该选项被禁用,我想向用户显示警报。
可能是你可以给它一个尝试,确保你在运行的iDevice应用,因为模拟器不具有静音或响铃模式:)
新编辑
-(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;
}
你可以这样调用这个方法
if ([self silenced])
{
NSLog(@"silenced");
} else {
NSLog(@"not silenced");
}
希望它能帮助你!
你不能。因为苹果不提供API来访问iPhone设置应用程序。
谢谢,但它没有工作... – Pawel
看看我编辑的答案,希望它会帮助你。 –
我测试了振动打开/关闭和静音开关开/关的算法,但在所有4种情况下,“状态”的值都是@“扬声器”......(在iPhone 5,iOS 7.0.2上测试)。 – Pawel