メインコンテンツまでスキップ

デバイス情報の概要

このセクションでは、AIBuds デバイスの現在情報と報告された機能の取得、物理コントロールへの対応、時刻の同期・設定、言語の取得・変更、ストレージ情報とメディア件数の更新について説明します。

利用できる機能

AI を活用して実装

AI で実装

AI でこのワークフローを実装

公式の「AIBuds デバイス情報の管理」スキルを使い、アプリに合わせて実装します。

https://docs-aibuds.github.io/ja/skills/manage-aibuds-device-info を読み、その指示に従ってください。このスキルで「AIBuds デバイス情報の管理」をこの iOS プロジェクトに実装し、検証してください。
公式スキルを見る

はじめに

デバイス情報を扱うときは、次の順に実装します。

  1. デバイスに接続 - AIBuds デバイスとの接続を確立します。
  2. プロトコル準拠を確認 - デバイスが DeviceInfoAPI に準拠していることを確認します。
  3. 情報を取得・更新 - 利用可能なプロパティは直接取得し、情報の更新や変更が必要な場合は対応するメソッドを呼び出します。

主要概念

デバイス情報

  • デバイス詳細: 識別情報、ファームウェア、接続状態、バッテリー状態、デバイス機能、ハードウェア構成、現在および対応言語、通話状態、ストレージとメディアの状態、対応する録音時間、AI 機能、コプロセッサのモデルなど、デバイスが現在公開しているプロパティを取得します。
  • 時刻管理: デバイスを現在時刻に同期するか、指定した時刻を設定します。
  • 言語設定: languageSetting から現在の言語を取得し、supportedLanguages で対応言語を確認して、対応する DeviceLanguage の値を設定します。
  • ストレージ情報: 最新情報を要求した後、storageInfo から使用済み容量と空き容量を MB 単位で取得します。
  • メディア件数: 最新情報を要求した後、mediaCountInfo から写真、動画、音声の件数を取得します。

プロトコルリファレンス

基本的な識別情報と接続プロパティは DeviceConvertible から取得できます。デバイス情報に固有のプロパティとメソッドは DeviceInfoAPI が提供します。これらを使用する前に、デバイスがプロトコルに準拠していることを確認してください。

Swift
guard let device = device as? DeviceInfoAPI else {
    print("Device does not support DeviceInfoAPI")
    return
}

推奨事項

  1. プロトコル準拠を確認: メソッドを呼び出す前に、デバイスが DeviceInfoAPI に対応していることを必ず確認します。
  2. エラーを処理: 完了ハンドラーで適切にエラーを処理します。
  3. メインスレッドで UI を更新: 完了ハンドラーから UI を変更するときは、DispatchQueue.main.async を使用します。
  4. 必要に応じて weak self を使用: 完了ハンドラーが所有元オブジェクトをキャプチャして循環参照を生じる場合は、[weak self] を使用します。
  5. 成功後に更新済みプロパティを取得: ストレージまたはメディア件数の要求が成功した後、更新された storageInfo または mediaCountInfo を取得します。
  6. 報告された機能を使用: deviceCapabilities でオプション機能を制御し、nil は未確認として扱います。hardwareConfiguration を使用して搭載ハードウェアに合わせて説明と操作を調整します。

補足

  • 利用できるデバイス情報は、デバイスのモデルとファームウェアによって異なります。
  • このセクションに記載された機能の一部に対応していないデバイスもあります。
  • アプリで機能を公開する前に、プロトコル準拠、デバイスが通知する対応状況、モデル、ファームウェアを確認してください。