Получение режима работы
Получите текущее значение WorkMode устройства.
Предварительные условия
- Устройство подключено и готово к работе
- Устройство поддерживает
DeviceWorkModeAPI
Справочник API
Фреймворк
AIBuds.xcframework
Импорт
- Swift
- Objective-C
import AIBuds#import <AIBuds/AIBuds-Swift.h>
#import <AIBuds/AIBuds.h>Протокол
- Swift
- Objective-C
/// The protocol for device work mode API.
protocol DeviceWorkModeAPI: DeviceAPI {
/// The current work mode of the device.
var workMode: WorkMode { get }
}/// The protocol for device work mode API.
@protocol AIBudsDeviceWorkModeAPI <AIBudsDeviceAPI>
/// The current work mode of the device.
@property(nonatomic, readonly) enum AIBudsWorkMode workMode;
@endСвойства
| Свойство | Тип | Описание |
|---|---|---|
workMode | WorkMode / AIBudsWorkMode | Текущий режим работы, сообщаемый устройством. |
Возвращаемое значение
workMode — синхронное свойство только для чтения; обработчик завершения не используется.
Примеры использования
- Swift
- Objective-C
import AIBuds
guard let device = device as? DeviceWorkModeAPI else {
print("Device does not support work modes")
return
}
switch device.workMode {
case .normal:
print("Normal mode")
case .game:
print("Game mode")
@unknown default:
print("Unknown work mode")
}#import <AIBuds/AIBuds-Swift.h>
#import <AIBuds/AIBuds.h>
id<AIBudsDeviceWorkModeAPI> device = (id<AIBudsDeviceWorkModeAPI>)self.device;
if (![device conformsToProtocol:@protocol(AIBudsDeviceWorkModeAPI)]) {
NSLog(@"Device does not support work modes");
return;
}
switch (device.workMode) {
case AIBudsWorkModeNormal:
NSLog(@"Normal mode");
break;
case AIBudsWorkModeGame:
NSLog(@"Game mode");
break;
default:
NSLog(@"Unknown work mode");
break;
}Обработка ошибок
Асинхронный результат ошибки отсутствует. Обрабатывайте неподдерживаемый протокол и неизвестные значения перечисления.
Рекомендации
- Читайте свойство напрямую: не создавайте асинхронную обёртку для получения режима.
- Обрабатывайте неизвестные значения: добавьте ветвь unknown/default для совместимости с будущими версиями.
- Следите за обновлениями: обновляйте интерфейс, когда делегат устройства сообщает об изменении режима.
Примечания
- Сейчас открытый SDK определяет режимы
normalиgame. - Для изменения режима используется
setWorkMode(_:completion:); это отдельная операция, не связанная с данным свойством только для чтения.