目前只有 iPhone 支持振动,如何在调用振动功能之前检查我的设备是否支持振动。
问问题
8576 次
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 回答