Состояние распознавания ношения
Получите включённое состояние функции и сведения о том, надет ли сейчас ни один, один или оба наушника.
Предварительные условия
- Устройство подключено и готово к работе.
- Устройство поддерживает
DeviceWearDetectionAPI.
Справочник API
Фреймворк
AIBuds.xcframework
Импорт
- Swift
- Objective-C
import AIBuds#import <AIBuds/AIBuds-Swift.h>
#import <AIBuds/AIBuds.h>Протокол
- Swift
- Objective-C
/// The protocol for device wear detection API.
protocol DeviceWearDetectionAPI: DeviceAPI {
/// Indicates whether wear detection is currently enabled
var isWearDetectionEnabled: Bool { get }
/// The current wear status of the device.
var wearStatus: WearStatus { get }
}/// The protocol for device wear detection API.
@protocol AIBudsDeviceWearDetectionAPI <AIBudsDeviceAPI>
/// Indicates whether wear detection is currently enabled
@property(nonatomic, readonly) BOOL isWearDetectionEnabled;
/// The current wear status of the device.
@property(nonatomic, readonly) enum AIBudsWearStatus wearStatus;
@endСвойства
| Свойство | Тип | Описание |
|---|---|---|
isWearDetectionEnabled | Bool / BOOL | Включено ли распознавание ношения сейчас. |
wearStatus | WearStatus | Текущее состояние ношения левого и правого наушника. |
Значения состояния ношения
| Swift | Objective-C | Смысл |
|---|---|---|
.unknown | AIBudsWearStatusUnknown | Состояние ношения неизвестно. |
.notWearing | AIBudsWearStatusNotWearing | Ни один наушник не надет. |
.leftWearing | AIBudsWearStatusLeftWearing | Надет только левый наушник. |
.rightWearing | AIBudsWearStatusRightWearing | Надет только правый наушник. |
.bothWearing | AIBudsWearStatusBothWearing | Надеты оба наушника. |
Примеры использования
- Swift
- Objective-C
import AIBuds
guard let device = device as? DeviceWearDetectionAPI else {
print("Device does not support wear detection")
return
}
print("Wear detection enabled: \(device.isWearDetectionEnabled)")
switch device.wearStatus {
case .unknown:
print("Wear state is unknown")
case .notWearing:
print("Neither side is worn")
case .leftWearing:
print("Only the left side is worn")
case .rightWearing:
print("Only the right side is worn")
case .bothWearing:
print("Both sides are worn")
@unknown default:
print("Unsupported wear-state value")
}#import <AIBuds/AIBuds-Swift.h>
#import <AIBuds/AIBuds.h>
id<AIBudsDeviceWearDetectionAPI> device = (id<AIBudsDeviceWearDetectionAPI>)self.device;
if ([device conformsToProtocol:@protocol(AIBudsDeviceWearDetectionAPI)]) {
NSLog(@"Wear detection enabled: %@", device.isWearDetectionEnabled ? @"YES" : @"NO");
NSLog(@"Wear status raw value: %ld", (long)device.wearStatus);
}Обработка ошибок
Это синхронные свойства-снимки, не возвращающие ошибок. Явно обрабатывайте неподдерживаемый протокол и .unknown. Состояние может измениться после чтения.
Рекомендации
- Разделяйте включённое состояние и ношение:
falseи.notWearingописывают разные понятия. - Следите за обновлениями: реализуйте
didWearDetectionEnabledChangedиdidWearStatusChanged, если интерфейс должен оставаться актуальным. - Обновляйте интерфейс в главном потоке: при необходимости направляйте изменения из делегата в главную очередь.
Примечания
- SDK предоставляет свойства, а не
getWearDetectionSwitchStatusили запросы на основеResult. .unknownнельзя отображать как «не надето».