اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release بدلاً من aosp-main لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتألف حزمة البث الإذاعي من المكونات الموضّحة في الشكل 1.
الشكل 1. بنية البث الإذاعي
تطبيق مرجعي للراديو
لمعرفة التفاصيل حول كيفية تنفيذ التحكّم في الراديو، يُرجى الاطّلاع على
تنفيذ التحكّم في الراديو.
يُعدّ نموذج تطبيق Java للراديو (packages/apps/Car/Radio) مرجعًا لتطبيق
البث. عند بدء خدمة التطبيق، تطلب من "مدير الراديو" فتح أداة ضبط الراديو. بعد ذلك،
يمكن للتطبيق إرسال طلبات إلى أداة ضبط الراديو، مثل ضبط إعدادات محطة إذاعية أو تردد معيّن،
أو الانتقال إلى المحطة الإذاعية التالية المتاحة. يتلقّى التطبيق تعديلات من "مدير الراديو" و
"مُعدِّل الراديو" في تطبيق "الراديو"، مثل معلومات البرنامج الحالي وقوائم البرامج الإذاعية والإعدادات
والمَعلمات التي يحدّدها المورّد. لا يتيح تطبيق "راديو Google" المرجعي سوى راديو AM وFM. يمكن لمصنّعي المعدّات الأصلية تعديل تطبيق "الراديو" أو
استبداله حسب الرغبة.
مدير البث
عندما يطلب التطبيق من "مدير الراديو" فتح أداة ضبط، يطلب "مدير الراديو"
(frameworks/base/core/java/android/hardware/radio/RadioManager.java) من
"خدمة البثّ الإذاعي" (BRS) فتح جلسة أداة ضبط، ثم يُغلِق الجلسة في أداة ضبط الراديو
(frameworks/base/core/java/android/hardware/radio/RadioTuner.java)، والتي يتم إرجاعها
إلى التطبيق.
وتحدِّد أداة ضبط الراديو واجهات برمجة التطبيقات (مثل ضبط الإعدادات والانتقال إلى الخطوة التالية والإلغاء) التي يمكن استدعاؤها من تطبيقات الراديو
ومرسَلة الطلبات إلى "خدمة البثّ الإذاعي". تُرسِل طُرق طلب معاودة الاتصال (RadioTuner.Callback) المحدّدة في Radio
tuner تعديلات حول HAL لبث الإذاعة، مثل معلومات البرنامج الحالي وقوائم
البرامج والمَعلمات التي يحدّدها المورّد، من BRS إلى التطبيقات.
خدمة البثّ الإذاعي
خدمة البثّ الإذاعي
(frameworks/base/services/core/java/com/android/server/broadcastradio) هي خدمة العميل
لواجهة برمجة التطبيقات Broadcast Radio HAL. تنظّم خدمة BRS عدّة "مديري راديو" مع واجهة برمجة التطبيقات لبثّ المحتوى على تتيح واجهة BRS استخدام HAL interface definition language (HIDL) وAndroid interface definition language (AIDL) لبث واجهة HAL للراديو. ترتبط BRS بواجهة برمجة التطبيقات AIDL HAL عند توفُّر أي خدمة AIDL HAL،
وإلا، ترتبط الخدمة بواجهة برمجة التطبيقات HIDL HAL. ينشئ BRS وحدة راديو
لكل مثيل HAL متاح (مثل AM وFM وDAB).
يمكن لكل مدير راديو أن يطلب من BRS إنشاء جلسة معيّنة لوحدة التحكّم في الترميز على
وحدة الراديو المقابلة، استنادًا إلى نوع الراديو. يمكن لكل جلسة من جلسات أداة الضبط استدعاء طُرق، مثل
tune وstep وcancel (المحدّدة في واجهات HAL) لتنفيذ عمليات على
العنصر المقابل من HAL لبثّ الإذاعة. عندما تتلقّى جلسة أحد أجهزة الاستقبال مكالمة مرتدة من مثيل HAL
بخصوص تحديث HAL، مثل معلومات البرنامج الحالي وقائمة البرامج وعلامات الضبط ومقاييس
مورّد الجهاز، يتم إرسال المكالمات المرتدة بشأن التحديث إلى جميع أجهزة استقبال الراديو المرتبطة بالوحدة
نفسها للراديو.
Broadcast Radio HAL
للاطّلاع على مزيد من المعلومات عن واجهات HIDL وAIDL لبث الإذاعة والاختلافات بينهما، يُرجى الاطّلاع على واجهة Broadcast Radio HAL.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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)."]]