از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
پشته رادیویی پخش شامل اجزایی است که در شکل 1 نشان داده شده است.
شکل 1. معماری رادیو پخش.
برنامه مرجع رادیو
برای جزئیات در مورد نحوه اجرای رادیو کنترل، اجرای رادیو کنترل را ببینید.
یک نمونه برنامه رادیویی جاوا ( 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 ارسال کنند. روشهای پاسخ به تماس ( RadioTuner.Callback ) تعریف شده در Radio Tuner بهروزرسانیهای مربوط به HAL رادیویی پخش، مانند اطلاعات برنامههای جاری، فهرستهای برنامه و پارامترهای تعریفشده توسط فروشنده را از BRS به برنامهها ارسال میکنند.
سرویس رادیویی پخش
سرویس رادیو پخش ( frameworks/base/services/core/java/com/android/server/broadcastradio ) سرویس مشتری برای پخش رادیو HAL است. BRS چندین مدیر رادیویی را با HAL های رادیویی پخش هماهنگ می کند. BRS از زبان تعریف رابط HAL (HIDL) و زبان تعریف رابط اندروید (AIDL) HAL های پخش رادیویی پشتیبانی می کند. هنگامی که هر سرویس AIDL HAL وجود دارد، BRS به AIDL HAL پیوند مییابد. در غیر این صورت، سرویس به HIDL HAL پیوند می یابد. BRS برای هر نمونه HAL موجود (مانند AM، FM و DAB) یک ماژول رادیویی ایجاد می کند.
هر مدیر رادیو می تواند از BRS درخواست کند تا یک جلسه تیونر در ماژول رادیویی مربوطه، بر اساس نوع رادیو ایجاد کند. هر جلسه تیونر میتواند روشهایی مانند تنظیم، استپ و لغو (تعریف شده در رابطهای HAL) را برای انجام عملیات بر روی نمونه HAL رادیویی مربوطه فراخوانی کند. هنگامی که یک جلسه تیونر یک تماس از نمونه HAL در یک به روز رسانی HAL دریافت می کند، مانند اطلاعات برنامه فعلی، لیست برنامه، پرچم های پیکربندی و پارامترهای فروشنده، تماس های مربوط به به روز رسانی به همه تیونرهای رادیویی متصل به همان ماژول رادیویی ارسال می شود.
پخش رادیو HAL
برای کسب اطلاعات بیشتر در مورد رابط های HIDL و AIDL رادیو پخش و تفاوت های بین این دو، به رابط پخش رادیو HAL مراجعه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],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)."]]