সেলব্রডকাস্ট মডিউলটি OEM-এর জন্য পুনরাবৃত্তিমূলক প্রচেষ্টা হ্রাস করে (যার ফলে অ্যান্ড্রয়েড ইকোসিস্টেম জুড়ে ফ্র্যাগমেন্টেশন হ্রাস করে এবং শেষ ব্যবহারকারীদের জন্য সামঞ্জস্যপূর্ণ আচরণ প্রদান করে) এবং সেলব্রডকাস্ট-সম্পর্কিত প্রয়োজনীয়তার জন্য ক্যারিয়ার টেস্টিং এবং সার্টিফিকেশন স্ট্রীমলাইন করতে সহায়তা করে (কারণ কোডটি OEMs দ্বারা সংশোধন করা যায় না। ) এই মডিউলটি আপডেটযোগ্য, মানে এটি স্বাভাবিক অ্যান্ড্রয়েড রিলিজ চক্রের বাইরে কার্যকারিতার আপডেট পেতে পারে।
প্যাকেজ বিন্যাস
সেলব্রডকাস্ট মডিউলটি নিম্নলিখিত পরিষেবা এবং অ্যাপ নিয়ে গঠিত।
CellBroadcastService পরিষেবা সেলব্রডকাস্ট এসএমএস ডিকোডিং, ওয়্যারলেস ইমার্জেন্সি অ্যালার্ট (WEA) 3.0 এর জন্য জিওফেন্সিং, মেসেজ ডুপ্লিকেশন চেক এবং অ্যাপে বার্তা সম্প্রচার সমর্থন করে। এটি একটি এক-থেকে-অনেক জিও-টার্গেটেড এবং জিওফেন্সড মেসেজিং পরিষেবা যা একই সময়ে একাধিক মোবাইল ফোন ব্যবহারকারীদের কাছে বার্তা পৌঁছে দেওয়ার জন্য ডিজাইন করা হয়েছে। পরিষেবাটি ETSI GSM কমিটি, 3GPP দ্বারা সংজ্ঞায়িত করা হয়েছে এবং এটি টেলিকমিউনিকেশন মানগুলির একটি অংশ৷
CellBroadcastReceiver অ্যাপ হল একটি ডিফল্ট সিস্টেম অ্যাপ যা জরুরী এবং অ-জরুরি সতর্কতা (যেমন অ্যাম্বার এবং রাষ্ট্রপতির সতর্কতা) পরিচালনা করে এবং ক্যারিয়ার এবং আঞ্চলিক প্রবিধানের ভিত্তিতে শেষ ব্যবহারকারীদের কাছে তথ্য উপস্থাপন করে।
সেলব্রডকাস্ট বার্তা প্রবাহ
নিচের চিত্রটি সেলব্রডকাস্ট বার্তা প্রবাহ দেখায়।
চিত্র 1. সেলব্রডকাস্ট রিসিভার বার্তা প্রবাহ
রেডিও ইন্টারফেস লেয়ার (RIL) একটি CDMA/GSM সেলব্রডকাস্ট SMS সম্পর্কে
InBoundSMSHandler
অবহিত করে।ফ্রেমওয়ার্ক ইনকামিং মেসেজ পার্স এবং প্রসেস করার জন্য CBS মডিউলে সেলব্রডকাস্ট এসএমএস ফরোয়ার্ড করে।
বার্তাটি প্রক্রিয়া করার পরে, CellBroadcastService উদ্দেশ্যটিকে সিস্টেমের ডিফল্ট CellBroadcastReceiver অ্যাপে ফরোয়ার্ড করে।
CellBroadcastReceiver অ্যাপ ব্যবহারকারীকে বার্তা প্রদর্শন করে।
মডিউল বিন্যাস
CellBroadcastService এবং CellBroadcastReceiver অ্যাপটি একটি একক APEX ফাইলে ( com.android.cellbroadcast
) অন্তর্ভুক্ত করা হয়েছে, যা Android 11 বা তার উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য উপলব্ধ৷ মডিউল package/app/CellBroadcastReceiver
কোড অন্তর্ভুক্ত করে এবং বিদ্যমান ফ্রেমওয়ার্ক ক্লাসগুলিকে packages/modules/CellBroadcastService
স্থানান্তরিত করে।
মডিউল নির্ভরতা
CellBroadcast মডিউল শুধুমাত্র স্থিতিশীল @SystemApi
(কোন @hide
APIs নেই) ব্যবহার করে ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করে এবং নিম্নলিখিত স্ট্যাটিক লাইব্রেরির উপর নির্ভর করে।
-
Androidx.legacy_legacy-support-v13
-
Androidx.recyclerview_recyclerview
-
Androidx.preference_preference
-
androidx.legacy_legacy-preference-v14
-
androidx.appcompat_appcompat
আপনি রানটাইম রিসোর্স ওভারলে (RROs) ব্যবহার করে কনফিগারেশন কাস্টমাইজ করতে পারেন।
অনুমতি কনফিগারেশন
সেলব্রডকাস্ট মডিউলটি একটি প্ল্যাটফর্ম স্বাক্ষরের পরিবর্তে একটি Google স্বাক্ষরের সাথে স্বাক্ষরিত হয়, যার অর্থ মডিউল স্বাক্ষর অনুমতিগুলিতে অ্যাক্সেস হারায়৷ পরিবর্তে, Android 11 সেলব্রডকাস্ট মডিউলের ভিতরে নতুন স্বাক্ষর অনুমতি com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY
সংজ্ঞায়িত করে; শুধুমাত্র মডিউলের প্যাকেজগুলি একই কী দিয়ে স্বাক্ষর করার কারণে অনুমতি পেতে পারে। এই অনুমতি CellBroadcastReceiver অ্যাপকে CellBroadcastService-এর ভিতরে ডাটাবেসে সম্পূর্ণ অ্যাক্সেসের অনুমতি দেয়।
জরুরী সতর্কতার ইতিহাস অ্যাক্সেস করার জন্য প্ল্যাটফর্মটি ডিফল্ট সিস্টেম এসএমএস অ্যাপে android.permission.READ_CELL_BROADCASTS
রানটাইম অনুমতি দেয়।
সেলব্রডকাস্ট মডিউল একত্রিত করুন
এই বিভাগটি বর্ণনা করে কিভাবে সেলব্রডকাস্ট মডিউলকে একীভূত করতে হয়।
সেটিংসের সাথে একীভূত করুন
আপনি সেটিংস অ্যাপে সেলব্রডকাস্ট সেটিংস কোথায় একীভূত করবেন তা নির্ধারণ করতে পারেন (শেষ ব্যবহারকারীরা সেটিংস > অ্যাপস এবং বিজ্ঞপ্তি > উন্নত > জরুরি সতর্কতা থেকে সেলব্রডকাস্ট সেটিংস পৃষ্ঠাটি অ্যাক্সেস করেন)। সেটিংস অ্যাপ থেকে CellBroadcastReceiver অ্যাপ চালু করতে, com.android.cellbroadcastreceiver
প্যাকেজ নামের সাথে নিম্নলিখিত সেটিং কনফিগারেশন পরিবর্তন করুন।
<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.android.cellbroadcastreceiver</string>
মেসেজিং অ্যাপের সাথে ইন্টিগ্রেট করুন
সেলব্রডকাস্ট বার্তা ইতিহাস খুলতে আপনি মেসেজিং অ্যাপে একটি অ্যাপ লিঙ্ক সংহত করতে পারেন। অ্যান্ড্রয়েড মেসেজিং অ্যাপে, এটি সেটিংস > অ্যাডভান্সড > ইমার্জেন্সি অ্যালার্ট- এ একত্রিত করা হয়েছে। আপনার নিজস্ব মেসেজিং অ্যাপে একটি লিঙ্ক সংহত করতে, মেসেজিং অ্যাপে পথটি সংজ্ঞায়িত করুন এবং CellBroadcast মডিউলের কম্পোনেন্টের নাম com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity
হিসাবে কনফিগার করুন।
এসএমএস ইনবক্সের সাথে একত্রিত করুন
আপনি একটি রানটাইম রিসোর্স ওভারলে ব্যবহার করে নিম্নলিখিত কনফিগারেশন ওভাররাইড করে ডিফল্ট মেসেজিং অ্যাপে সেলব্রডকাস্ট বার্তাগুলি প্রদর্শন সক্ষম করতে পারেন৷
<item type="bool" name="enable_write_alerts_to_sms_inbox" />
যেহেতু অনুমতি প্রদান সেলব্রডকাস্ট মডিউলের সুযোগের বাইরে, তাই আপনাকে অবশ্যই AppOpsManager.OP_WRITE_SMS
অনুমতি দিতে হবে সেলব্রডকাস্ট মডিউলকে এন্ড-টু-এন্ড সমর্থন প্রদান করতে। একটি AOSP রেফারেন্স বাস্তবায়নের জন্য, এই SmsApplication.java
প্যাচটি পড়ুন।
CellBroadcastReceiver অ্যাপটি চালু করুন
CellBroadcastReceiver অ্যাপের নিম্নলিখিত লঞ্চ পয়েন্ট রয়েছে।
সেটিংস অ্যাপ মেনু।
একটি অ্যাপ (তৃতীয় পক্ষের অ্যাপ সহ) যেমন একটি বার্তা অ্যাপ যা CellBroadcast বার্তা ইতিহাসের সাথে লিঙ্ক করে।
(ঐচ্ছিক) Android হোম স্ক্রীন থেকে একটি লঞ্চ আইকন OEM দ্বারা যোগ করা হয়েছে৷ বিস্তারিত জানার জন্য, একটি লঞ্চ আইকন যোগ করা দেখুন।
CellBroadcastReceiver অ্যাপ সেটিংস
নিম্নলিখিত স্ক্রিনশটগুলি সেলব্রডকাস্ট রিসিভার অ্যাপ সেটিংস মেনু দেখায়৷
চিত্র 2। সেলব্রডকাস্ট রিসিভার অ্যাপ সেটিংস মেনু
চিত্র 3. জরুরী সতর্কতা ইতিহাসের পর্দা
লঞ্চ আইকন যোগ করুন
আপনি অ্যাপ লঞ্চার থেকে এবং আপনার নিজের লঞ্চ আইকনগুলির মাধ্যমে সেলব্রডকাস্ট বার্তা ইতিহাস অ্যাক্সেস করতে সক্ষম করতে পারেন৷
অ্যাপ লঞ্চার থেকে বার্তা ইতিহাস অ্যাক্সেস সক্ষম করতে, একটি RRO ব্যবহার করে নিম্নলিখিত কনফিগারেশনটি ওভাররাইড করুন৷
<item type="bool" name="show_message_history_in_launcher" />
AOSP ডিফল্ট আইকন ওভাররাইড করতে, একটি RRO ব্যবহার করে নিম্নলিখিত কনফিগারেশন ওভাররাইড করুন।
<!-- Customize launcher icon for cellbroadcast history --> <item type="mipmap" name="ic_launcher_cell_broadcast" />
CMAS গোপন কোড সক্ষম করুন
CMAS গোপন কোড সক্ষম করতে, *#*#CMAS#*#* (ডায়াল প্যাডে *#*#2627#*#* ), একটি ডায়ালার অ্যাপ অবশ্যই *#*# আকারে বিশেষ ডায়লার কোড শুনতে হবে। code #*#* এবং পাবলিক পদ্ধতি sendDialerSpecialCode
ব্যবহার করে কোডটি পরিচালনা করুন।
এলাকার তথ্য প্রয়োজন: চ্যানেল 50
চ্যানেল 50 হল এলাকা-সম্পর্কিত তথ্য (দক্ষিণ আফ্রিকার MTN ব্যতীত) সম্প্রচার করার জন্য ক্যারিয়ারদের জন্য একটি বিশেষ চ্যানেল। এই চ্যানেলের জন্য, সম্প্রচারিত বার্তাগুলি একটি ডায়ালগ বা বিজ্ঞপ্তিতে পরিণত হয় না৷ পরিবর্তে, সম্প্রচার বার্তাগুলি সেটিংস মেনুর সিম স্থিতিতে বা স্ট্যাটাস বারে (উদাহরণস্বরূপ, একটি জিপ কোড প্রদর্শন) প্রদর্শিত হয়৷
Android CellBroadcastService বাস্তবায়ন সেটিংস এবং SysUI অ্যাপগুলির জন্য সেল ব্রডকাস্ট পরিষেবাতে নিম্নলিখিত APIগুলির জন্য ব্রডকাস্ট চ্যানেল 50 তথ্য পেতে সহায়তা প্রদান করে৷ এটি বাস্তবায়ন করতে, নিম্নলিখিতগুলি করুন:
android.telephony.action.AREA_INFO_UPDATED
সম্প্রচার নিবন্ধন করুন এবং RRO-এর মাধ্যমে রিসিভার প্যাকেজের নামconfig_area_info_receiver_packages
ওভাররাইড করুন।CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE
এর সাথে আবদ্ধ করুন।
যেহেতু সেটিংস এবং SysUI অ্যাপ্লিকেশানগুলি সেলব্রডকাস্ট মডিউলের সুযোগের বাইরে, তাই আপনাকে অবশ্যই শেষ থেকে শেষ সমর্থন প্রদান করতে SystemUI বা সেটিংস অ্যাপে আপনার পরিবর্তনগুলি বাস্তবায়ন করতে হবে৷ একটি রেফারেন্স বাস্তবায়নের জন্য, CellBroadcastService সেটিংস অ্যাপ দেখুন।
কাস্টমাইজেশন
আপনি সেলব্রডকাস্ট মডিউলের সোর্স কোড সরাসরি পরিবর্তন করতে পারবেন না, তবে প্যারামিটারগুলি সক্ষম (বা অক্ষম) করতে আপনি রানটাইম রিসোর্স ওভারলে (RROs) ব্যবহার করতে পারেন (উদাহরণস্বরূপ, আপনি সংলাপে বিজ্ঞপ্তির রঙ এবং মাত্রা কাস্টমাইজ করতে পারেন)। সেলব্রডকাস্ট মডিউলে ব্যবহৃত প্যারামিটারের ডিফল্ট মানগুলিকে ওভাররাইড করতে, টার্গেট প্যাকেজের নাম com.android.cellbroadcastreceiver
এ পরিবর্তন করুন। উপরন্তু:
ওভারলেয়েবল কনফিগারেশনের তালিকার জন্য,
overlayable.xml
পড়ুন।একটি উদাহরণ বাস্তবায়নের জন্য, AOSP-এ
RROSampleTestApp
দেখুন।
যদি বাস্তবায়নে UI স্ট্রিং অনুবাদ সংস্থান অনুপস্থিত থাকে বা অনুবাদগুলি আপনার প্রত্যাশা পূরণ না করে, আপনি একটি RRO ব্যবহার করে অনুবাদ সংস্থানগুলিকে ওভাররাইড করতে পারেন বা CellBroadcast মডিউলে স্ট্রিং অনুবাদগুলি আপস্ট্রিম করতে Google অনুবাদ দলের সাথে কাজ করতে পারেন৷ আপনি অনুবাদ সংস্থান ওভাররাইড করলে, ওভাররাইড করার অনুমতি দেওয়ার জন্য Google-কে অবশ্যই overlayable.xml
এ সেই স্ট্রিংগুলি প্রকাশ করতে হবে। আপনার যদি UI কাস্টমাইজেশনের জন্য আরও কনফিগারেশনের প্রয়োজন হয়, সেলব্রডকাস্ট সমর্থন গোষ্ঠীর সাথে যোগাযোগ করুন।
ডেটা মাইগ্রেট করুন
অ্যান্ড্রয়েড 11-এ একটি লিগ্যাসি সেলব্রডকাস্ট অ্যাপ রয়েছে, যা সেলব্রডকাস্ট মডিউলে আপগ্রেড করা ডিভাইসগুলির জন্য অ্যাপ ডেটা (ব্যবহারকারীর সেটিংস এবং জরুরি সতর্কতা ইতিহাস সহ) সংরক্ষণ এবং স্থানান্তর করার একটি প্রক্রিয়া। যে অ্যান্ড্রয়েড প্রয়োগগুলি সেলব্রডকাস্ট মডিউল ব্যবহার করে তাদের ডেটা মাইগ্রেশনের জন্য তাদের বিল্ডে লিগ্যাসি সেলব্রডকাস্ট অ্যাপ অন্তর্ভুক্ত করা উচিত। যদি আপনার বাস্তবায়ন একটি কাস্টম সেলব্রডকাস্ট সমাধান ব্যবহার করে, তাহলে আপনাকে ডেটা সংরক্ষণের জন্য একটি সেলব্রডকাস্ট কনটেন্টপ্রোভাইডার APK সংজ্ঞায়িত করা উচিত (আপনি পরবর্তী রিলিজে উত্তরাধিকার সেল ব্রডকাস্ট APK নিরাপদে সরিয়ে ফেলতে পারেন)।
CellBroadcast মডিউল ব্যবহার করার জন্য আপগ্রেড করা ডিভাইসগুলিতে, মডিউলটি AOSP LegacyCellBroadcastApp বা OEM-সংজ্ঞায়িত CellBroadcastContentProvider APK থেকে ভাল-সংজ্ঞায়িত cellbroadcast-legacy
কর্তৃপক্ষের মাধ্যমে ডেটা নিয়ে আসে।
একটি OEM-সংজ্ঞায়িত CellBroadcastContentProvider APK ব্যবহার করুন
একটি CellBroadcastContentProvider APK সংজ্ঞায়িত করার সময়, APK-কে অবশ্যই এই বৈশিষ্ট্যগুলি অনুসরণ করতে হবে।
APK হল একটি হেডলেস APK যা
cellbroadcast-legacy
কর্তৃপক্ষের সাথে একটিContentProvider
বস্তুর মাধ্যমে শুধুমাত্র এর ডাটাবেসের বিষয়বস্তু এবংSharedPreferences
প্রকাশ করে এবং তৃতীয় পক্ষের অ্যাপগুলিতে অ্যাক্সেসযোগ্য নয়।APKটি OEM এর দ্বারা তৈরি এবং মালিকানাধীন, যেখানে OEM তাদের লুকানো API স্কিমা হোস্ট করা চালিয়ে যেতে পারে।
সেলব্রডকাস্ট মডিউলে SharedPreferences
স্থানান্তর করতে, সেলব্রডকাস্টকন্টেন্টপ্রোভাইডার APK-কে অবশ্যই নিম্নলিখিত প্যারামিটার সহ ContentProvider.call
) পদ্ধতি সমর্থন করতে হবে:
- কর্তৃপক্ষ:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
- পদ্ধতি:
@SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
Arg:
@SystemAPI CellBroadcast.Preference
এটি সেলব্রডকাস্ট মডিউলের জন্য সমর্থিত শেয়ার্ড প্রেফারেন্স কীগুলির একটি তালিকা৷ ডেটা
ContentProvider.call
পদ্ধতির জন্যSharedPreferences
থেকে আসে।
CellBroadcast মডিউলে বার্তার ইতিহাস স্থানান্তর করতে, CellBroadcastContentProvider APK-কে অবশ্যই নিম্নলিখিত প্যারামিটার সহ ContentProvider.query
পদ্ধতি সমর্থন করতে হবে:
- কর্তৃপক্ষ:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
। সেলব্রডকাস্ট মডিউলের জন্য কলামের তালিকা সমর্থিত বার্তা বৈশিষ্ট্য।ContentProvider.query
পদ্ধতির জন্য ডেটা (আপনার ডাটাবেস থেকে) গ্রহণ করে।
CellBroadcastContentProvider,
LegacyCellBroadcastContentProvider
দেখুন।
টেস্টিং
অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) অ্যাপ-নির্ভর সিস্টেম API-এর কার্যকারিতা যাচাই করে। এছাড়াও আপনি CellBroadcast মডিউল unit tests/testappsp
চালাতে পারেন।
যদি OEM একটি ডিভাইসের জন্য CMAS গোপন কোড সক্ষম করে থাকে, তাহলে সেই ডিভাইসটি নিম্নলিখিত বৈশিষ্ট্যগুলির সাথে ডিবাগ মোড সমর্থন করতে পারে৷
পরীক্ষা সতর্কতাগুলি একটি অন/অফ টগল সহ অন্যান্য সতর্কতার অধীনে গোষ্ঠীভুক্ত করা হয়।
ইতিহাসের অন্তর্ভুক্ত সমস্ত বার্তা যা গৃহীত হয়েছিল কিন্তু প্রদর্শিত হয়নি, যেমন নকল বার্তা বা অন্য ভাষায় বার্তা।
বার্তাগুলি সিরিয়াল নম্বর, বার্তা আইডি এবং মেয়াদ শেষ হওয়ার তারিখ সহ সমস্ত উপলব্ধ পরামিতি প্রদর্শন করে।
ডিবাগ মোড সক্ষম করতে, ডায়লারে *#*#CMAS#*#* ডায়াল করুন।
যোগাযোগ
CellBroadcast মডিউল সম্পর্কে আরও বিশদ বা প্রশ্নের জন্য, CellBroadcast সহায়তা গোষ্ঠীর সাথে যোগাযোগ করুন।