11

目前只有 iPhone 支持振动,如何在调用振动功能之前检查我的设备是否支持振动。

4

3 回答 3

10

iOS sdk 有两个可以使 iPhone 振动的功能。但振动硬件仅存在于 iPhone 上。那么,您将如何提醒在 iPad 或 iPod touch 上使用该应用程序的用户呢?显然,检查模型不是要走的路。有两个看似相似的函数采用参数 kSystemSoundID_Vibrate

AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

这两个功能都会震动 iPhone。但是当您在不支持振动的设备上使用第一个功能时,它会发出哔声。另一方面,第二个功能在不受支持的设备上没有任何作用。

于 2011-06-03T18:08:57.493 回答
4

有点解决方法,但我发现这可行。它基于以下假设:目前只有 iPhone 设备具有振动硬件。

if([[UIDevice currentDevice].model isEqualToString:@"iPhone"])
{
    // An iPhone: so should have vibrate
}
else
{
    // Not an iPhone: so doesn't have vibrate
}
于 2012-12-13T04:24:56.927 回答
1

不幸的是,没有记录在案的方法来测试设备是否支持振动。从文档:

在某些 iOS 设备上,您可以传递 kSystemSoundID_Vibrate 常量来调用振动。在其他 iOS 设备上,使用该常量调用此函数不会执行任何操作。

看起来这里的正确方法是简单地调用 Saurabh 提到的方法,而不检查是否支持振动。

于 2013-09-08T07:06:49.533 回答