CellBroadcast মডিউল OEM-এর (যা Android ইকোসিস্টেম জুড়ে ফ্র্যাগমেন্টেশন কমিয়ে দেয় এবং ব্যবহারকারীদের জন্য সামঞ্জস্যপূর্ণ ব্যবহার প্রদান করে) জন্য পুনরাবৃত্তিমূলক প্রচেষ্টা কমিয়ে দেয় এবং CellBroadcast-সম্পর্কিত প্রয়োজনীয়তার জন্য ক্যারিয়ার টেস্টিং এবং সার্টিফিকেশন স্ট্রিমলাইন করতে সাহায্য করে (কারণ কোড OEM দ্বারা পরিবর্তন করা যাবে না)। এই মডিউল আপডেট করা যায়, অর্থাৎ সাধারণ Android রিলিজ সাইকেলের বাইরেও এটি কার্যকারিতা সংক্রান্ত আপডেট পেতে পারে।
প্যাকেজ ফর্ম্যাট
CellBroadcast মডিউলে নিম্নলিখিত পরিষেবা ও অ্যাপ থাকে।
CellBroadcastService পরিষেবা CellBroadcast SMS ডিকোডিং, ওয়্যারলেস জরুরি সতর্কতা (WEA) 3.0-এর জন্য জিওফেন্সিং, মেসেজ ডুপ্লিকেশন চেক এবং অ্যাপে মেসেজ ব্রডকাস্ট করার মতো সুবিধা প্রদান করে। এটি একটির-সাথে-অনেক ভূলক্ষ এবং জিওফেন্সড মেসেজিং পরিষেবা যা একই সময়ে নির্দিষ্ট এলাকায় একাধিক মোবাইল ফোন ব্যবহারকারীকে মেসেজ পাঠানোর জন্য ডিজাইন করা হয়েছে। এই পরিষেবাটি ETSI GSM কমিটি, 3GPP দ্বারা নির্ধারিত হয় এবং এটি টেলিকমিউনিকেশন স্ট্যান্ডার্ডের অংশ।
CellBroadcastReceiver অ্যাপ হল একটি ডিফল্ট সিস্টেম অ্যাপ যা জরুরি ও অজরুরি অ্যালার্ট (যেমন, অ্যাম্বার ও প্রেসিডেন্সিয়াল অ্যালার্ট) ম্যানেজ করে এবং ক্যারিয়ার ও আঞ্চলিক নিয়ম অনুযায়ী এন্ড-ইউজারদের তথ্য দেখায়।
CellBroadcast মেসেজ ফ্লো
নিচের ছবিতে CellBroadcast মেসেজ ফ্লো দেখানো হয়েছে।
ছবি ১. CellBroadcastReceiver মেসেজ ফ্লো
রেডিও ইন্টারফেস লেয়ার (RIL)
InBoundSMSHandler-কে CDMA/GSM CellBroadcast SMS সম্পর্কে বিজ্ঞপ্তি পাঠায়।ফ্রেমওয়ার্কটি CellBroadcast এসএমএস CBS মডিউলে ফরওয়ার্ড করে যাতে ইনকামিং মেসেজ পার্স ও প্রসেস করা যায়।
মেসেজ প্রসেস করার পরে, CellBroadcastService ইনটেন্টটি সিস্টেম ডিফল্ট CellBroadcastReceiver অ্যাপে ফরওয়ার্ড করে।
CellBroadcastReceiver অ্যাপ ব্যবহারকারীকে মেসেজ দেখায়।
মডিউল ফর্ম্যাট
CellBroadcastService এবং CellBroadcastReceiver অ্যাপ একটি
সিঙ্গেল APEX ফাইলে
(com.android.cellbroadcast) অন্তর্ভুক্ত করা আছে, যা
Android 11 বা এর পরের যেকোনও ভার্সনে চলে এমন ডিভাইসের জন্য উপলভ্য। মডিউলে
package/app/CellBroadcastReceiver-এ কোড অন্তর্ভুক্ত থাকে এবং আগে থেকে থাকা ফ্রেমওয়ার্ক ক্লাসকে
packages/modules/CellBroadcastService-এ মাইগ্রেট করে।
মডিউল ডিপেন্ডেন্সি
CellBroadcast মডিউল শুধুমাত্র স্থিতিশীল
@SystemApi (কোনও @hide API নেই) ব্যবহার করে ফ্রেমওয়ার্কের সাথে ইন্টার্যাক্ট করে এবং নিম্নলিখিত স্ট্যাটিক লাইব্রেরির উপর নির্ভর করে।
Androidx.legacy_legacy-support-v13Androidx.recyclerview_recyclerviewAndroidx.preference_preferenceandroidx.legacy_legacy-preference-v14androidx.appcompat_appcompat
আপনি রানটাইম রিসোর্স ওভারলে (RRO) ব্যবহার করে কনফিগারেশন কাস্টমাইজ করতে পারবেন।
অনুমতি কনফিগারেশন
CellBroadcast মডিউলটি প্ল্যাটফর্ম স্বাক্ষরের পরিবর্তে Google স্বাক্ষরের মাধ্যমে স্বাক্ষরিত, যার অর্থ মডিউলটি স্বাক্ষর অনুমতির অ্যাক্সেস হারায়।
পরিবর্তে, Android 11 CellBroadcast মডিউলের মধ্যে নতুন স্বাক্ষর
অনুমতি com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY
সংজ্ঞায়িত করে; মডিউলের শুধুমাত্র প্যাকেজগুলি অনুমতি পেতে পারে কারণ সেগুলি একই কী দিয়ে স্বাক্ষরিত হয়। এই অনুমতি
CellBroadcastReceiver অ্যাপকে
CellBroadcastService-এর মধ্যে থাকা ডেটাবেসে সম্পূর্ণ অ্যাক্সেস দেয়।
জরুরি সতর্কতার ইতিহাস অ্যাক্সেস করার জন্য প্ল্যাটফর্মটি ডিফল্ট সিস্টেম এসএমএস অ্যাপকে android.permission.READ_CELL_BROADCASTS রানটাইম
অনুমতি দেয়।
CellBroadcast মডিউল ইন্টিগ্রেট করা
CellBroadcast মডিউল কীভাবে ইন্টিগ্রেট করতে হয় তা এই বিভাগে বর্ণনা করা হয়েছে।
সেটিংসের সাথে ইন্টিগ্রেট করা
আপনি সিদ্ধান্ত নিতে পারবেন যে সেটিংস অ্যাপে CellBroadcast সেটিংস কোথায় ইন্টিগ্রেট করবেন
(শেষ ব্যবহারকারীরা সেটিংস >
অ্যাপ ও বিজ্ঞপ্তি > উন্নত > জরুরি সতর্কতা বিকল্প থেকে CellBroadcast সেটিংস পৃষ্ঠা অ্যাক্সেস করেন)। Settings অ্যাপ থেকে CellBroadcastReceiver অ্যাপ লঞ্চ করতে, প্যাকেজের নাম সহ নিম্নলিখিত
সেটিং কনফিগারেশন পরিবর্তন করুন
com.android.cellbroadcastreceiver।
<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.android.cellbroadcastreceiver</string>
মেসেজিং অ্যাপের সাথে ইন্টিগ্রেট করা
CellBroadcast
মেসেজ ইতিহাস খুলতে, আপনি মেসেজিং অ্যাপে একটি অ্যাপ লিঙ্ক ইন্টিগ্রেট করতে পারেন। Android Messaging অ্যাপে, এটি
সেটিংস > উন্নত > জরুরি সতর্কতা বিকল্পে ইন্টিগ্রেট করা হয়েছে। আপনার নিজস্ব মেসেজিং অ্যাপে
লিঙ্ক ইন্টিগ্রেট করতে, মেসেজিং অ্যাপে পাথ নির্ধারণ করুন এবং CellBroadcast মডিউলের জন্য
কম্পোনেন্টের নাম হিসেবে
com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity কনফিগার করুন।
এসএমএস ইনবক্সের সাথে ইন্টিগ্রেট করা
রানটাইম রিসোর্স ওভারলে ব্যবহার করে নিম্নলিখিত কনফিগারেশন ওভাররাইড করার মাধ্যমে আপনি ডিফল্ট মেসেজিং অ্যাপে CellBroadcast মেসেজ দেখানো চালু করতে পারবেন।
<item type="bool" name="enable_write_alerts_to_sms_inbox" />
যেহেতু অনুমতি দেওয়া CellBroadcast মডিউলের স্কোপের বাইরে,
এন্ড-টু-এন্ড সহায়তা প্রদান করতে আপনাকে অবশ্যই CellBroadcast
মডিউলকে AppOpsManager.OP_WRITE_SMS অনুমতি দিতে হবে। AOSP রেফারেন্স প্রয়োগের জন্য,
এই SmsApplication.java
প্যাচ দেখুন।
CellBroadcastReceiver অ্যাপ লঞ্চ করুন
CellBroadcastReceiver অ্যাপের নিম্নলিখিত লঞ্চ পয়েন্ট আছে।
সেটিংস অ্যাপ মেনু।
CellBroadcast মেসেজ ইতিহাসের সাথে লিঙ্ক করা মেসেজ অ্যাপের মতো কোনও অ্যাপ (থার্ড-পার্টি অ্যাপ সহ)।
(ঐচ্ছিক) OEM-এর যোগ করা Android হোম স্ক্রিন থেকে একটি লঞ্চ আইকন। আরও বিবরণের জন্য, লঞ্চ আইকন যোগ করা দেখুন।
CellBroadcastReceiver অ্যাপ সেটিংস
নিচের স্ক্রিনশটে CellBroadcastReceiver অ্যাপের সেটিংস মেনু দেখানো হয়েছে।
ছবি ২. CellBroadcastReceiver অ্যাপ সেটিংস মেনু
ছবি ৩. জরুরি সতর্কতার ইতিহাস স্ক্রিন
লঞ্চ আইকন যোগ করা
আপনি অ্যাপ লঞ্চার থেকে এবং আপনার নিজস্ব লঞ্চ আইকনের মাধ্যমে CellBroadcast মেসেজ ইতিহাস অ্যাক্সেস করার সুবিধা চালু করতে পারবেন।
অ্যাপ লঞ্চার থেকে মেসেজ ইতিহাস অ্যাক্সেস করার সুবিধা চালু করতে, 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 ব্যবহার করে কোড ম্যানেজ করতে হবে।
এলাকা সংক্রান্ত তথ্য সম্পর্কিত প্রয়োজনীয়তা: চ্যানেল ৫০
চ্যানেল ৫০ হল ক্যারিয়ারদের জন্য একটি বিশেষ চ্যানেল যা এলাকা-সম্পর্কিত তথ্য সম্প্রচার করে (দক্ষিণ আফ্রিকার MTN ছাড়া)। এই চ্যানেলের ক্ষেত্রে, ব্রডকাস্ট মেসেজ কোনও ডায়ালগ বা বিজ্ঞপ্তি দেখায় না। পরিবর্তে, সেটিংস মেনুর SIM স্ট্যাটাসে বা স্ট্যাটাস বারে (যেমন, পিন কোড দেখানো) ব্রডকাস্ট মেসেজ দেখা যায়।
Android CellBroadcastService ইমপ্লিমেন্টেশন, সেটিংস ও SysUI অ্যাপের জন্য সেল ব্রডকাস্ট পরিষেবায় নিম্নলিখিত API-এর জন্য সহায়তা প্রদান করে যাতে ব্রডকাস্ট চ্যানেল ৫০ সংক্রান্ত তথ্য পাওয়া যায়। এটি প্রয়োগ করতে, নিম্নলিখিত কাজগুলি করুন:
RRO-এর মাধ্যমে ব্রডকাস্ট
android.telephony.action.AREA_INFO_UPDATEDরেজিস্টার করুন এবং রিসিভার প্যাকেজের নামconfig_area_info_receiver_packagesওভাররাইড করুন।CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE-এর সাথে বাইন্ড করুন।
যেহেতু সেটিংস এবং SysUI অ্যাপ CellBroadcast মডিউলের আওতার বাইরে, তাই এন্ড-টু-এন্ড সহায়তা প্রদান করতে আপনাকে SystemUI বা সেটিংস অ্যাপে পরিবর্তন করতে হবে। রেফারেন্স ইমপ্লিমেন্টেশনের জন্য, CellBroadcastService সেটিংস অ্যাপ দেখুন।
কাস্টমাইজেশন
আপনি CellBroadcast মডিউলের সোর্স কোড সরাসরি পরিবর্তন করতে পারবেন না, তবে
প্যারামিটার চালু (বা বন্ধ) করতে
রানটাইম রিসোর্স ওভারলে (RRO) ব্যবহার করতে পারবেন
(যেমন, আপনি বিজ্ঞপ্তির রঙ এবং
ডায়ালগের আকার কাস্টমাইজ করতে পারবেন)। CellBroadcast মডিউলে ব্যবহৃত প্যারামিটারের ডিফল্ট ভ্যালু ওভাররাইড করতে, টার্গেট প্যাকেজের নাম পরিবর্তন করে
com.android.cellbroadcastreceiver করুন। এছাড়াও:
ওভারলে করা যায় এমন কনফিগারেশনের তালিকা দেখতে,
overlayable.xmlদেখুন।প্রয়োগের উদাহরণের জন্য, AOSP-তে
RROSampleTestAppদেখুন।
যদি প্রয়োগে UI স্ট্রিং ট্রান্সলেশন রিসোর্স না থাকে অথবা যদি
ট্রান্সলেশন আপনার প্রত্যাশা পূরণ না করে, তাহলে আপনি RRO ব্যবহার করে ট্রান্সলেশন
রিসোর্স ওভাররাইড করতে পারেন অথবা CellBroadcast মডিউলে স্ট্রিং ট্রান্সলেশন
আপস্ট্রিম করার জন্য Google ট্রান্সলেশন টিমের সাথে কাজ করতে পারেন। আপনি যদি অনুবাদ
সম্পদ ওভাররাইড করেন, তাহলে Google-কে অবশ্যই সেইসব স্ট্রিং overlayable.xml-এ প্রকাশ করতে হবে, যাতে
ওভাররাইড করা যায়। UI কাস্টমাইজেশনের জন্য আপনার আরও কনফিগারেশনের প্রয়োজন হলে, CellBroadcast সহায়তা গ্রুপের সাথে যোগাযোগ করুন।
ডেটা স্থানান্তরন
Android 11-এ একটি লিগ্যাসি CellBroadcast অ্যাপ অন্তর্ভুক্ত আছে, যা CellBroadcast মডিউলে আপগ্রেড করা ডিভাইসের জন্য অ্যাপ ডেটা (ব্যবহারকারীর সেটিংস এবং জরুরি সতর্কতার ইতিহাস সহ) সংরক্ষণ এবং মাইগ্রেট করার একটি পদ্ধতি। CellBroadcast মডিউল ব্যবহার করে এমন Android ইমপ্লিমেন্টেশনে ডেটা মাইগ্রেশনের জন্য বিল্ডে লিগ্যাসি CellBroadcast অ্যাপ অন্তর্ভুক্ত করা উচিত। আপনার ইমপ্লিমেন্টেশনে কাস্টম CellBroadcast সলিউশন ব্যবহার করা হলে, ডেটা সুরক্ষিত রাখতে আপনাকে CellBroadcastContentProvider APK ডিফাইন করতে হবে (পরবর্তী রিলিজ থেকে আপনি নিরাপদে লেগ্যাসি সেল ব্রডকাস্ট APK সরিয়ে দিতে পারবেন)।
CellBroadcast মডিউল ব্যবহার করার জন্য আপগ্রেড করা ডিভাইসে, মডিউলটি
AOSP LegacyCellBroadcastApp বা
OEM-এর সংজ্ঞায়িত CellBroadcastContentProvider APK থেকে ভালভাবে সংজ্ঞায়িত
cellbroadcast-legacy কর্তৃপক্ষের মাধ্যমে ডেটা সংগ্রহ করে।
OEM-এর মাধ্যমে সংজ্ঞায়িত CellBroadcastContentProvider APK ব্যবহার করুন
CellBroadcastContentProvider APK সংজ্ঞায়িত করার সময়, APK-কে অবশ্যই এইসব স্পেসিফিকেশন মেনে চলতে হবে।
APK হল একটি হেডলেস APK যা শুধুমাত্র এর ডেটাবেসের কন্টেন্ট এবং
SharedPreferencescellbroadcast-legacyঅথরিটি সহContentProviderঅবজেক্টের মাধ্যমে সারফেস করে এবং থার্ড-পার্টি অ্যাপের কাছে অ্যাক্সেসযোগ্য নয়।APK, OEM-এর দ্বারা ডেভেলপ ও মালিকানাধীন, যেখানে OEM তাদের লুকানো API স্কিমা হোস্ট করা চালিয়ে যেতে পারে।
SharedPreferences-কে CellBroadcast মডিউলে মাইগ্রেট করতে, CellBroadcastContentProvider APK-কে অবশ্যই নিম্নলিখিত প্যারামিটার সহ
ContentProvider.call)
পদ্ধতিকে সাপোর্ট করতে হবে:
- কর্তৃপক্ষ:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI - পদ্ধতি:
@SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE Arg:
@SystemAPI CellBroadcast.Preferenceএটি CellBroadcast মডিউলের জন্য কাজ করে এমন শেয়ার করা পছন্দ সংক্রান্ত কী-এর তালিকা।
ContentProvider.callপদ্ধতির জন্য ডেটাSharedPreferencesথেকে আসে।
CellBroadcast মডিউলে মেসেজ ইতিহাস মাইগ্রেট করতে, CellBroadcastContentProvider APK-কে নিম্নলিখিত প্যারামিটার সহ
ContentProvider.query
মেথড কাজ করতে হবে:
- কর্তৃপক্ষ:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI. কলাম কোয়েরি করুন CellBroadcast মডিউলের জন্য কাজ করে এমন মেসেজ প্রপার্টির তালিকা দিন।ContentProvider.queryপদ্ধতির জন্য ডেটা (আপনার ডেটাবেস থেকে) নেয়।
CellBroadcastContentProvider,-এর জন্য রেফারেন্স ইমপ্লিমেন্টেশন দেখতে,
LegacyCellBroadcastContentProvider দেখুন।
পরীক্ষা করা
Android কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) অ্যাপ-নির্ভর সিস্টেম API-এর কার্যকারিতা যাচাই করে। এছাড়াও, আপনি CellBroadcast মডিউল চালাতে পারবেন
unit tests/testappsp।
কোনও ডিভাইসের জন্য OEM CMAS সিক্রেট কোড চালু করলে, সেই ডিভাইস নিম্নলিখিত ফিচার সহ ডিবাগ মোড সাপোর্ট করতে পারে।
টেস্ট অ্যালার্ট অন্যান্য অ্যালার্ট-এর অধীনে গ্রুপ করা হয় এবং চালু/বন্ধ করার টগল থাকে।
ইতিহাসে সেইসব মেসেজ অন্তর্ভুক্ত থাকে যা পাওয়া গেছে কিন্তু দেখানো হয়নি, যেমন ডুপ্লিকেট মেসেজ বা অন্য ভাষায় লেখা মেসেজ।
মেসেজে সিরিয়াল নম্বর, মেসেজ আইডি ও মেয়াদ শেষ হওয়ার তারিখ সহ সব উপলভ্য প্যারামিটার দেখানো হয়।
ডিবাগ মোড চালু করতে, ডায়ালারে *#*#CMAS#*#* নম্বরটি ডায়াল করুন।
যোগাযোগ করুন
CellBroadcast মডিউল সম্পর্কে আরও বিবরণ বা প্রশ্ন থাকলে, CellBroadcast সহায়তা গ্রুপের সাথে যোগাযোগ করুন।