Перейти к основному содержимому

Возможности распознавания ношения

Проверьте, поддерживает ли устройство распознавание ношения и можно ли его настраивать.

Предварительные условия

  • Устройство подключено и готово к работе.
  • Устройство поддерживает DeviceWearDetectionAPI.

Справочник API

Фреймворк

AIBuds.xcframework

Импорт

Swift
import AIBuds

Протокол

Возможность предоставляется свойством DeviceWearDetectionAPI.

Swift
/// The protocol for device wear detection API.
protocol DeviceWearDetectionAPI: DeviceAPI {
    /// The wear-detection capabilities supported by the device
    var wearDetectionCapability: WearDetectionCapability { get }
}

Свойства

СвойствоТипОписание
wearDetectionCapabilityWearDetectionCapabilityВозможность, которую сейчас сообщает устройство.

Поддерживаемые значения

SwiftObjective-CСмысл
.noneAIBudsWearDetectionCapabilityNoneНе поддерживается.
.supportedNotConfigurableAIBudsWearDetectionCapabilitySupportedNotConfigurableПоддерживается, но не настраивается.
.supportedAndConfigurableAIBudsWearDetectionCapabilitySupportedAndConfigurableПоддерживается и настраивается.

Примеры использования

Swift
import AIBuds

guard let device = device as? DeviceWearDetectionAPI else {
    print("Wear detection is not exposed by this device")
    return
}

switch device.wearDetectionCapability {
case .none:
    print("Wear detection is not supported")
case .supportedNotConfigurable:
    print("Wear detection is supported but not configurable")
case .supportedAndConfigurable:
    print("Wear detection is supported and configurable")
@unknown default:
    print("Unknown wear-detection capability")
}

Обработка ошибок

У свойства нет обработчика завершения. Обрабатывайте неподдерживаемый протокол и будущие неизвестные варианты перечисления. Не считайте .none транспортной ошибкой: это допустимое значение возможности.

Рекомендации

  1. Читайте до настройки: проверьте возможность до отображения переключателя.
  2. Сохраняйте все уровни: не объединяйте «не настраивается» с «не поддерживается».
  3. Обрабатывайте будущие значения: используйте @unknown default в Swift при разборе перечисления.

Примечания

  • Это синхронное чтение свойства, а не асинхронный метод getWearDetectionSupport.
  • Demo SDK по этому свойству определяет, нужно ли показывать элементы настройки.