デバイス情報の概要
このセクションでは、AIBuds デバイスの現在情報と報告された機能の取得、物理コントロールへの対応、時刻の同期・設定、言語の取得・変更、ストレージ情報とメディア件数の更新について説明します。
利用できる機能
デバイス詳細情報の取得
AIBuds デバイスの識別情報、ファームウェア、接続、アドバタイズ、実行時情報を読み取る
デバイス時刻の同期
AIBuds デバイスの時計を現在時刻に合わせる
デバイス時刻の設定
AIBuds デバイスの時計を指定した日時に設定する
デバイス言語の設定
接続中の AIBuds デバイスで使用する言語を設定する
ストレージ情報の取得
AIBuds デバイスへストレージ使用状況を要求して取得する
メディア件数の取得
AIBuds デバイスへメディアファイルの件数を要求して取得する
AI を活用して実装
AI で実装
AI でこのワークフローを実装
公式の「AIBuds デバイス情報の管理」スキルを使い、アプリに合わせて実装します。
https://docs-aibuds.github.io/ja/skills/manage-aibuds-device-info を読み、その指示に従ってください。このスキルで「AIBuds デバイス情報の管理」をこの iOS プロジェクトに実装し、検証してください。はじめに
デバイス情報を扱うときは、次の順に実装します。
- デバイスに接続 - AIBuds デバイスとの接続を確立します。
- プロトコル準拠を確認 - デバイスが
DeviceInfoAPIに準拠していることを確認します。 - 情報を取得・更新 - 利用可能なプロパティは直接取得し、情報の更新や変更が必要な場合は対応するメソッドを呼び出します。
主要概念
デバイス情報
- デバイス詳細: 識別情報、ファームウェア、接続状態、バッテリー状態、デバイス機能、ハードウェア構成、現在および対応言語、通話状態、ストレージとメディアの状態、対応する録音時間、AI 機能、コプロセッサのモデルなど、デバイスが現在公開しているプロパティを取得します。
- 時刻管理: デバイスを現在時刻に同期するか、指定した時刻を設定します。
- 言語設定:
languageSettingから現在の言語を取得し、supportedLanguagesで対応言語を確認して、対応するDeviceLanguageの値を設定します。 - ストレージ情報: 最新情報を要求した後、
storageInfoから使用済み容量と空き容量を MB 単位で取得します。 - メディア件数: 最新情報を要求した後、
mediaCountInfoから写真、動画、音声の件数を取得します。
プロトコルリファレンス
基本的な識別情報と接続プロパティは DeviceConvertible から取得できます。デバイス情報に固有のプロパティとメソッドは DeviceInfoAPI が提供します。これらを使用する前に、デバイスがプロトコルに準拠していることを確認してください。
- Swift
- Objective-C
guard let device = device as? DeviceInfoAPI else {
print("Device does not support DeviceInfoAPI")
return
}id<AIBudsDeviceInfoAPI> device = (id<AIBudsDeviceInfoAPI>)self.device;
if (![device conformsToProtocol:@protocol(AIBudsDeviceInfoAPI)]) {
NSLog(@"Device does not support AIBudsDeviceInfoAPI");
return;
}推奨事項
- プロトコル準拠を確認: メソッドを呼び出す前に、デバイスが
DeviceInfoAPIに対応していることを必ず確認します。 - エラーを処理: 完了ハンドラーで適切にエラーを処理します。
- メインスレッドで UI を更新: 完了ハンドラーから UI を変更するときは、
DispatchQueue.main.asyncを使用します。 - 必要に応じて weak self を使用: 完了ハンドラーが所有元オブジェクトをキャプチャして循環参照を生じる場合は、
[weak self]を使用します。 - 成功後に更新済みプロパティを取得: ストレージまたはメディア件数の要求が成功した後、更新された
storageInfoまたはmediaCountInfoを取得します。 - 報告された機能を使用:
deviceCapabilitiesでオプション機能を制御し、nilは未確認として扱います。hardwareConfigurationを使用して搭載ハードウェアに合わせて説明と操作を調整します。
補足
- 利用できるデバイス情報は、デバイスのモデルとファームウェアによって異なります。
- このセクションに記載された機能の一部に対応していないデバイスもあります。
- アプリで機能を公開する前に、プロトコル準拠、デバイスが通知する対応状況、モデル、ファームウェアを確認してください。