Как определить, что на устройстве iOs отключена тактильная обратная связь?

Я хочу показать сообщение в моем приложении, когда тактильная обратная связь отключена в настройках телефона. Как определить, что тактильная обратная связь отключена в настройках устройства?

1 ответ

Это глупо, но может ли это сработать?

- (BOOL)isHapticFeedbackDisabled {
  BOOL result = NO;
  UISelectionFeedbackGenerator *feedbackGenerator = [[UISelectionFeedbackGenerator alloc] init];
  [feedbackGenerator prepare];
  if ([feedbackGenerator.description containsString:@"prepared=0"]) result = YES;
  feedbackGenerator = nil;
  return result;
}

Невозможно проверить, включена ли Haptic Feedback, но есть личный _feedbackSupportLevel в UIKit для проверки, поддерживает ли устройство это:

func logFeedbackSupported() {
    let supportLevel = UIDevice.current.value(forKey: "_feedbackSupportLevel")
    print(supportLevel ?? "")
}

0: недоступно, 1: доступно первое поколение (2: доступно второе поколение.

Я советую вам не использовать частные API Apple, потому что:

  1. API можно изменить в любой версии, не зная об этом.
  2. Apple анализирует код вашего приложения, чтобы выяснить, используете ли вы частный API, так что будьте внимательны. Ваше приложение может быть отклонено.
Другие вопросы по тегам