Подтвердить что ты не робот

Как я могу проверить, может ли устройство iOS вибрировать

В настоящее время только iPhone поддерживает вибрации, как я могу проверить, поддерживает ли мое устройство вибрацию перед вызовом функции вибрации.

4b9b3361

Ответ 1

iOS sdk имеет две функции, которые бы вибрировали iPhone. Но вибрационное оборудование присутствует только на iPhone. Итак, как вы будете предупреждать своего пользователя, который использует приложение для iPad или iPod? Ясно, что проверка модели - это не путь. Есть две, казалось бы, похожие функции, которые принимают параметр kSystemSoundID_Vibrate

AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

Обе функции вибрируют iPhone. Но когда вы используете первую функцию на устройствах, которые не поддерживают вибрацию, она воспроизводит звуковой сигнал. Вторая функция, с другой стороны, ничего не делает на неподдерживаемых устройствах.

Ответ 2

Немного о работе, но я нашел, что это работает. Это основано на предположении, что в настоящее время только устройства iPhone имеют вибрирующее оборудование в них.

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

Ответ 3

К сожалению, нет документального метода проверки того, поддерживает ли устройство вибрацию. Из документации:

На некоторых устройствах iOS вы можете передать константу kSystemSoundID_Vibrate, чтобы вызвать вибрацию. На других устройствах iOS вызов этой функции с этой константой ничего не делает.

Похоже, правильный подход здесь состоял в том, чтобы просто вызвать методы, упомянутые Saurabh, без проверки поддержки вибрации.