動作モードの取得
デバイスの現在の WorkMode を読み取ります。
前提条件
- デバイスが接続済みで、使用可能な状態であること。
- デバイスが
DeviceWorkModeAPIに対応していること。
API Reference
フレームワーク
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:)を使用します。この読み取り専用プロパティとは別の操作です。