A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release anziché aosp-main per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Un'app radio Java di esempio (packages/apps/Car/Radio) funge da implementazione di riferimento. Quando il servizio dell'app si avvia, richiede a Radio Manager di aprire un sintonizzatore radio. L'app può quindi inviare richieste al sintonizzatore radio, ad esempio l'impostazione di una stazione radio o una frequenza specifiche o la ricerca della stazione radio successiva disponibile. L'app riceve aggiornamenti da Radio Manager e dall'equalizzatore radio in Radio, ad esempio informazioni sui programmi in corso, elenchi di programmi radio, configurazioni e parametri definiti dal fornitore. L'app Radio di riferimento supporta solo le radio AM e FM. Gli OEM possono modificare o sostituire l'app Radio come preferiscono.
Radio Manager
Quando l'app richiede a Radio Manager di aprire un sintonizzatore, Radio Manager
(frameworks/base/core/java/android/hardware/radio/RadioManager.java) richiede al servizio radio di trasmissione (BRS) di aprire una sessione di sintonizzatore e poi avvolge la sessione in un sintonizzatore radio
(frameworks/base/core/java/android/hardware/radio/RadioTuner.java), che viene restituito
all'app.
Il sintonizzatore radio definisce le API (come tune, step e cancel) che possono essere chiamate dalle app radio
e inviare richieste al BRS. I metodi di callback (RadioTuner.Callback) definiti in Radio Tuner inviano aggiornamenti sull'HAL radio di trasmissione, ad esempio informazioni sui programmi in corso, elenchi di programmi e parametri definiti dal fornitore, dal BRS alle app.
Servizio di trasmissione radio
Il servizio di trasmissione radio
(frameworks/base/services/core/java/com/android/server/broadcastradio) è il servizio
cliente per l'HAL di trasmissione radio. Il BRS coordina più gestori radio con HAL radio di trasmissione. Il BRS supporta gli HAL radio di trasmissione in HAL Interface Definition Language (HIDL) e Android Interface Definition Language (AIDL). Il BRS si collega all'HAL AIDL se esiste un servizio HAL AIDL;
in caso contrario, il servizio si collega all'HAL HIDL. Il BRS crea un Modulo radio per ogni istanza HAL disponibile (ad esempio AM, FM e DAB).
Ogni gestore radio può richiedere al BRS di creare una sessione del sintonizzatore sul modulo radio corrispondente, in base al tipo di radio. Ogni sessione del sintonizzatore può chiamare metodi come sintonizzazione, passaggio e annullamento (definiti nelle interfacce HAL) per eseguire operazioni sull'istanza HAL della radio di trasmissione corrispondente. Quando una sessione di sintonizzazione riceve un callback dall'istanza HAL su un aggiornamento HAL, ad esempio informazioni sul programma corrente, elenco dei programmi, flag di configurazione e parametri del fornitore, i callback relativi all'aggiornamento vengono inviati a tutti i sintonizzatori radio collegati allo stesso modulo radio.
HAL radio di trasmissione
Per scoprire di più sulle interfacce HIDL e AIDL della radio e sulle differenze tra le due, consulta la sezione Interfaccia HAL della radio.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Overview\n\nThe broadcast radio stack consists of the components illustrated in Figure 1.\n**Figure 1.** Broadcast Radio architecture.\n\nRadio reference app\n-------------------\n\nFor details about how to implement radio control, see\n[Radio control implementation](/docs/automotive/radio/radio-control-implementation).\n\nA sample Java radio app (`packages/apps/Car/Radio`) serves as a reference\nimplementation. When the app service starts, it requests Radio Manager to open a Radio Tuner. Then,\nthe app can send requests to the Radio Tuner, such as tuning to a specific radio station, frequency,\nor to seek the next available radio station. The app receives updates from the Radio Manager and\nRadio Tuner in Radio, such as current program information, radio program lists, configurations, and\nvendor-defined parameters. The reference Radio app only supports AM and FM radio. OEMs can modify or\nreplace the Radio app as desired.\n\nRadio Manager\n-------------\n\nWhen the app requests Radio Manager to open a tuner, the Radio Manager\n(`frameworks/base/core/java/android/hardware/radio/RadioManager.java`) requests the\nBroadcast Radio Service (BRS) to open a Tuner session and then wraps the session in a Radio Tuner\n(`frameworks/base/core/java/android/hardware/radio/RadioTuner.java`), which is returned\nto the app.\n\nThe Radio Tuner defines APIs (such as tune, step, and cancel) that can be called from radio apps\nand send requests to BRS. Callback methods (`RadioTuner.Callback`) defined in Radio\nTuner send updates about the broadcast radio HAL, such as current program information, program\nlists, and vendor-defined parameters, from the BRS to apps.\n\nBroadcast Radio Service\n-----------------------\n\nThe Broadcast Radio Service\n(`frameworks/base/services/core/java/com/android/server/broadcastradio`) is the client\nservice for Broadcast Radio HAL. The BRS coordinates multiple Radio Managers with Broadcast Radio\nHALs. The BRS supports\n[HAL interface definition language (HIDL)](/docs/core/architecture/hidl) and\n[Android interface definition language (AIDL)](/docs/core/architecture/aidl) broadcast\nradio HALs. The BRS links to the AIDL HAL when any AIDL HAL service exists;\notherwise, the service links to the HIDL HAL. The BRS creates a Radio Module\nfor each available HAL instance (such as AM, FM, and DAB).\n\nEach Radio Manager can request the BRS to create a tuner session on the\ncorresponding Radio Module, based on the type of radio. Each tuner session can call methods, such\nas tune, step, and cancel (defined in HAL interfaces) to perform operations on the\ncorresponding broadcast radio HAL instance. When one tuner session receives a callback from the HAL\ninstance on a HAL update, such as current program info, program list, configuration flags and,\nvendor parameters, callbacks about the update are sent to all Radio Tuners linked to the same\nRadio Module.\n\nBroadcast Radio HAL\n-------------------\n\n| In Android 13 and lower, versions of the BRS are provided in HIDL and AIDL. New features are added **only** to releases of Android 14 and higher.\n\nTo learn more about the HIDL and AIDL interfaces of broadcast radio and the differences between\nthe two, see\n[Broadcast Radio HAL interface](/docs/automotive/radio/broadcast-radio-hal)."]]