সম্প্রচার রেডিও স্ট্যাক চিত্র 1 এ চিত্রিত উপাদানগুলি নিয়ে গঠিত।
রেডিও রেফারেন্স অ্যাপ
রেডিও নিয়ন্ত্রণ কিভাবে প্রয়োগ করতে হয় সে সম্পর্কে বিস্তারিত জানতে, রেডিও নিয়ন্ত্রণ বাস্তবায়ন দেখুন।
একটি নমুনা জাভা রেডিও অ্যাপ ( packages/apps/Car/Radio
) একটি রেফারেন্স বাস্তবায়ন হিসেবে কাজ করে। অ্যাপ পরিষেবা শুরু হলে, এটি রেডিও ম্যানেজারকে একটি রেডিও টিউনার খুলতে অনুরোধ করে। তারপরে, অ্যাপটি রেডিও টিউনারকে অনুরোধ পাঠাতে পারে, যেমন একটি নির্দিষ্ট রেডিও স্টেশনে টিউনিং, ফ্রিকোয়েন্সি বা পরবর্তী উপলব্ধ রেডিও স্টেশন খোঁজার জন্য। অ্যাপটি রেডিওতে রেডিও ম্যানেজার এবং রেডিও টিউনার থেকে আপডেট পায়, যেমন বর্তমান প্রোগ্রামের তথ্য, রেডিও প্রোগ্রামের তালিকা, কনফিগারেশন এবং বিক্রেতা-সংজ্ঞায়িত প্যারামিটার। রেফারেন্স রেডিও অ্যাপ শুধুমাত্র AM এবং FM রেডিও সমর্থন করে। OEMs ইচ্ছামতো রেডিও অ্যাপ পরিবর্তন বা প্রতিস্থাপন করতে পারে।
রেডিও ম্যানেজার
অ্যাপটি যখন একটি টিউনার খোলার জন্য রেডিও ম্যানেজারকে অনুরোধ করে, তখন রেডিও ম্যানেজার ( frameworks/base/core/java/android/hardware/radio/RadioManager.java
) একটি টিউনার সেশন খোলার জন্য ব্রডকাস্ট রেডিও সার্ভিস (BRS) কে অনুরোধ করে এবং তারপর সেটিকে মোড়ানো হয়। একটি রেডিও টিউনারে সেশন ( frameworks/base/core/java/android/hardware/radio/RadioTuner.java
), যা অ্যাপে ফিরে আসে। রেডিও টিউনার API (যেমন টিউন, ধাপ এবং বাতিল) সংজ্ঞায়িত করে যেগুলি রেডিও অ্যাপ থেকে কল করা যেতে পারে এবং BRS-এ অনুরোধ পাঠাতে পারে। রেডিও টিউনারে সংজ্ঞায়িত কলব্যাক পদ্ধতি ( RadioTuner.Callback
) ব্রডকাস্ট রেডিও HAL সম্পর্কে আপডেট পাঠায়, যেমন বর্তমান প্রোগ্রামের তথ্য, প্রোগ্রামের তালিকা এবং বিক্রেতা-সংজ্ঞায়িত প্যারামিটার, BRS থেকে অ্যাপগুলিতে।
ব্রডকাস্ট রেডিও পরিষেবা
ব্রডকাস্ট রেডিও সার্ভিস ( frameworks/base/services/core/java/com/android/server/broadcastradio
) হল ব্রডকাস্ট রেডিও HAL-এর ক্লায়েন্ট পরিষেবা। BRS একাধিক রেডিও ম্যানেজারকে ব্রডকাস্ট রেডিও HAL-এর সাথে সমন্বয় করে। BRS HAL ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (HIDL) এবং অ্যান্ড্রয়েড ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (AIDL) ব্রডকাস্ট রেডিও HALs সমর্থন করে। BRS AIDL HAL এর সাথে লিঙ্ক করে যখন কোনো AIDL HAL পরিষেবা বিদ্যমান থাকে; অন্যথায়, পরিষেবাটি HIDL HAL-এর সাথে লিঙ্ক করে। BRS প্রতিটি উপলব্ধ HAL উদাহরণের জন্য একটি রেডিও মডিউল তৈরি করে (যেমন AM, FM, এবং DAB)।
প্রতিটি রেডিও ম্যানেজার রেডিওর প্রকারের উপর ভিত্তি করে সংশ্লিষ্ট রেডিও মডিউলে একটি টিউনার সেশন তৈরি করার জন্য BRS-কে অনুরোধ করতে পারেন। প্রতিটি টিউনার সেশন সংশ্লিষ্ট ব্রডকাস্ট রেডিও HAL দৃষ্টান্তে ক্রিয়াকলাপ সম্পাদন করার জন্য সুর, পদক্ষেপ এবং বাতিল (HAL ইন্টারফেসে সংজ্ঞায়িত) এর মতো পদ্ধতিগুলিকে কল করতে পারে। যখন একটি টিউনার সেশন HAL আপডেটে HAL ইন্সট্যান্স থেকে একটি কলব্যাক পায়, যেমন বর্তমান প্রোগ্রামের তথ্য, প্রোগ্রামের তালিকা, কনফিগারেশন ফ্ল্যাগ এবং, ভেন্ডর প্যারামিটার, আপডেট সম্পর্কে কলব্যাকগুলি একই রেডিও মডিউলের সাথে সংযুক্ত সমস্ত রেডিও টিউনারকে পাঠানো হয়।
সম্প্রচার রেডিও HAL
ব্রডকাস্ট রেডিওর HIDL এবং AIDL ইন্টারফেস এবং উভয়ের মধ্যে পার্থক্য সম্পর্কে আরও জানতে, ব্রডকাস্ট রেডিও HAL ইন্টারফেস দেখুন।