如何在iphone中以编程方式检查振动状态是打开还是关闭?

时间:2017-10-03 14:39:39

标签: ios objective-c xcode8

如何通过App以编程方式检查系统振动是打开还是关闭? 在我的情况下,UI设计就像 - 我将一个按钮设置为viewcontroller。哪个功能是,当我按下按钮时,它会提醒我系统振动是开还是关。这是下面的代码。但它不起作用。它总是和其他部分一起使用。

- (IBAction)checkVibrate:(id)sender {
 CFStringRef state;
UInt32 propertySize = sizeof(CFStringRef);
AudioSessionInitialize(NULL, NULL, NULL, NULL);
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);

if(CFStringGetLength(state) == 0)
{
    //off
    [self Alert:@"It seems that your phone's vibration is off. Please go to your phone setting and make the vibration ON"];
}
else
{
    //on
    [self Alert:@"It seems that your phone's vibration is On.If you want to off the vibration, please go to device setting and make vibration Off"];
}

}

如果我走错了路,请帮我解决这个问题?

2 个答案:

答案 0 :(得分:0)

不,你不能。 Apple未提供访问此API的API。

答案 1 :(得分:0)

一旦我看到你的问题,我就试着找到解决方案。我在堆栈溢出和其他网站中准备了大部分其他答案。全部告诉使用AVAudioSession

  

音频会话充当您的应用和应用之间的媒介   操作系统 - 反过来,底层音频硬件。你用   它可以向操作系统传达应用程序的性质   音频没有详细说明特定行为或所需的交互   与音频硬件。这代表了那些管理   音频会话的详细信息,确保操作系统   可以最好地管理用户的音频体验。

更好的来源

How to detect whether iPhone is vibrating or not?

iPhone - How do I know if the vibrate is on or off for iOS?

iPhone Vibration

Making the iPhone Vibration

Detecting the iPhone's Ring / Silent / Mute switch using AVAudioPlayer not working?