获取工作模式
读取设备当前的 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 通过设备代理报告工作模式变化时刷新 UI。
注意事项
- 公开 SDK 当前定义
normal和game两种工作模式。 - 更改模式使用
setWorkMode(_:completion:),与该只读属性分开。