概要

ブロードキャスト ラジオ スタックは、図 1 に示すコンポーネントで構成されています。

ブロードキャスト ラジオ アーキテクチャ
図 1. ブロードキャスト ラジオ アーキテクチャ。

ラジオ リファレンス アプリ

ラジオの制御を実装する方法について詳しくは、以下をご覧ください。 ラジオの制御の実装

サンプルの Java ラジオアプリ(packages/apps/Car/Radio)がリファレンスとして機能します 説明します。アプリサービスは、開始時にラジオ マネージャーにラジオ チューナーを開くようリクエストします。次に、 アプリはラジオ チューナーにリクエストを送信できます。たとえば、特定のラジオ局、周波数、 次に再生できるラジオ局を探します。アプリはラジオ マネージャーから最新情報を受け取り、 ラジオのラジオ チューナー(現在の番組情報、ラジオ番組リスト、設定、 ベンダー定義パラメータ。リファレンス ラジオ アプリは AM ラジオと FM ラジオのみに対応しています。OEM は ラジオアプリを置き換えます

ラジオ マネージャー

アプリがラジオ マネージャーにチューナーを開くようリクエストすると、ラジオ マネージャーは (frameworks/base/core/java/android/hardware/radio/RadioManager.java)が ブロードキャスト ラジオ サービス(BRS)がチューナー セッションを開始し、セッションをラジオ チューナーでラップする (frameworks/base/core/java/android/hardware/radio/RadioTuner.java)が返されます。 必要があります。 ラジオ チューナーは、ラジオアプリから呼び出すことができる API(選局、ステップ、キャンセルなど)を定義します。 BRS にリクエストを送信できますRadio で定義されたコールバック メソッド(RadioTuner.Callback) チューナーはブロードキャスト ラジオ HAL に関する最新情報(現在の番組情報、番組情報など)を送信します。 リスト、ベンダー定義パラメータなど、多様な言語に対応できます。

ブロードキャスト ラジオ サービス

ブロードキャスト ラジオ サービス (frameworks/base/services/core/java/com/android/server/broadcastradio)はクライアントです ブロードキャスト ラジオ HAL 用のサービスを提供します。BRS は複数のラジオ マネージャーをブロードキャスト ラジオと連携させています。 HALBRS は HAL Interface Definition Language(HIDL) Android インターフェース定義言語(AIDL)ブロードキャスト ラジオ HAL。AIDL HAL サービスが存在する場合、BRS が AIDL HAL にリンクします。 それ以外の場合、サービスは HIDL HAL にリンクします。BRS がラジオ モジュールを作成する HAL インスタンス(AM、FM、DAB など)ごとに 1 つずつ設定する必要があります。

各ラジオ マネージャーは、BRS に YouTube でチューナー セッションを作成するようリクエストできます。 ラジオのタイプに応じて、対応するラジオ モジュールが呼び出されます。各チューナー セッションは、 調整、ステップ、キャンセル(HAL インターフェース内で定義)として機能し、 対応するブロードキャスト ラジオ HAL インスタンス。1 つのチューナー セッションが HAL からコールバックを受信したとき HAL アップデートのインスタンスで、現在のプログラム情報、プログラム リスト、構成フラグ、 ベンダー パラメータ、アップデートに関するコールバックは、同じプロバイダーにリンクされているすべてのラジオ チューナーに送信されます。 あります。

ブロードキャスト ラジオ HAL

ブロードキャスト ラジオの HIDL インターフェースと AIDL インターフェースの詳細と、 詳細については、 ブロードキャスト ラジオ HAL インターフェース