如何检查 iOS 设备是否可以振动

发布于 2024-11-13 10:30:33 字数 48 浏览 3 评论 0原文

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

Currently only iPhone supports the vibrations how can I check if my device supports vibrations before calling the vibration function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

留蓝 2024-11-20 10:30:33

iOS sdk 有两个可以让 iPhone 振动的函数。但振动硬件仅出现在 iPhone 上。那么,您将如何提醒在 iPad 或 iPod touch 上使用该应用程序的用户呢?显然,检查模型并不是正确的方法。有两个看似相似的函数,它们都采用 kSystemSoundID_Vibrate 参数,

AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

这两个函数都会使 iPhone 振动。但当您在不支持振动的设备上使用第一个功能时,它会发出嘟嘟声。另一方面,第二个函数在不受支持的设备上不执行任何操作。

The iOS sdk has two functions that would vibrate the iPhone. But Vibration hardware is present only on iPhones. So how will you alert your user who uses the app on iPad or iPod touches? Clearly, checking the model is not the way to go. There are two seemingly similar functions that take a parameter kSystemSoundID_Vibrate

AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

Both the functions vibrate the iPhone. But when you use the first function on devices that don’t support vibration, it plays a beep sound. The second function on the other hand does nothing on unsupported devices.

与之呼应 2024-11-20 10:30:33

有点解决办法,但我发现这是可行的。它基于目前只有 iPhone 设备配备振动硬件的假设。

if([[UIDevice currentDevice].model isEqualToString:@"iPhone"])
{
    // An iPhone: so should have vibrate
}
else
{
    // Not an iPhone: so doesn't have vibrate
}

A bit of a work-around but I've found this to work. It's based on the assumption that only iPhone devices currently have the vibrate hardware in them.

if([[UIDevice currentDevice].model isEqualToString:@"iPhone"])
{
    // An iPhone: so should have vibrate
}
else
{
    // Not an iPhone: so doesn't have vibrate
}
喜你已久 2024-11-20 10:30:33

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

<块引用>

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

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

Unfortunately there is no documented method for testing whether or not the device supports vibration. From documentation:

On some iOS devices, you can pass the kSystemSoundID_Vibrate constant to invoke vibration. On other iOS devices, calling this function with that constant does nothing.

Looks like the correct approach here would be to simply call the methods mentioned by Saurabh without checking if vibration is supported.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文