تعمل وحدة CellBroadcast على تقليل الجهود المتكررة التي تبذلها المصنّعين الأصليّين للأجهزة (ما يؤدي بدوره إلى تقليل التجزئة في منظومة Android المتكاملة وتوفير سلوك متسق للمستخدمين النهائيين) وتساعد على تبسيط اختبار مشغّلي شبكات الجوّال و الحصول على الاعتمادات للمتطلبات المتعلّقة بـ CellBroadcast (لأنّه لا يمكن للمصنّعين الأصليّين للأجهزة تعديل الرمز). هذه الوحدة قابلة للتحديث، ما يعني أنّه يمكنها تلقّي تحديثات لتحسين وظائفها خارج دورة إصدارات Android العادية.
تنسيق الحزمة
تتألف وحدة CellBroadcast من الخدمة والتطبيق التاليَين.
توفّر خدمة CellBroadcastService فك ترميز الرسائل القصيرة عبر CellBroadcast، وتحديد حدود جغرافية لتنبيهات الطوارئ اللاسلكية (WEA) 3.0، والتحقّق من تكرار الرسائل، وبث الرسائل إلى التطبيقات. وهي خدمة مراسلة مخصّصة لمستخدم واحد مع مستخدمين متعدّدين في منطقة محدّدة جغرافيًا، وهي مصمّمة لإرسال الرسائل إلى مستخدمي هواتف محمولة متعدّدين في منطقة محدّدة جغرافيًا في الوقت نفسه. يتم تحديد الخدمة من قِبل لجنة ETSI لتكنولوجيا GSM و3GPP، وهي جزء من معايير الاتصالات السلكية واللاسلكية.
تطبيق CellBroadcastReceiver هو تطبيق نظام تلقائي يعالج التنبيهات المتعلقة بالطوارئ وغير المتعلقة بالطوارئ (مثل تنبيهات Amber وتنبيهات الرئاسة) ويقدّم المعلومات للمستخدمين النهائيين استنادًا إلى اللوائح المتعلقة بمشغّلي شبكة الجوّال واللوائح الإقليمية.
مسار رسائل البث الخلوي
يعرض الشكل التالي مسار رسالة CellBroadcast.
الشكل 1: مسار رسائل CellBroadcastReceiver
تُرسِل طبقة واجهة الراديو (RIL) إشعارًا إلى
InBoundSMSHandler
بشأن تلقّي رسالة قصيرة من نظام CDMA/GSM CellBroadcast.يعيد الإطار توجيه رسالة CellBroadcast SMS إلى وحدة CBS لتحليل الرسالة الواردة ومعالجتها.
بعد معالجة الرسالة، تعيد خدمة CellBroadcastService توجيه النية إلى تطبيق CellBroadcastReceiver التلقائي للنظام.
يعرض تطبيق CellBroadcastReceiver الرسالة للمستخدم.
تنسيق الوحدة
يتم تضمين تطبيقَي CellBroadcastService وCellBroadcastReceiver فيملف APEX واحد (com.android.cellbroadcast
) متوفّر للأجهزة التي تعمل بالإصدار 11 من Android أو إصدار أحدث. تتضمّن الوحدة رمزًا في
package/app/CellBroadcastReceiver
وتنقل فئات الإطار الحالي إلى
packages/modules/CellBroadcastService
.
تبعيات الوحدة
تتفاعل وحدة CellBroadcast مع إطار العمل باستخدام @SystemApi
الثابت فقط (بدون واجهات برمجة تطبيقات @hide
) وتعتمد على المكتبات الثابتة التالية.
Androidx.legacy_legacy-support-v13
Androidx.recyclerview_recyclerview
Androidx.preference_preference
androidx.legacy_legacy-preference-v14
androidx.appcompat_appcompat
يمكنك تخصيص الإعدادات باستخدام تراكبات موارد وقت التشغيل (RROs).
ضبط الأذونات
تم توقيع وحدة CellBroadcast باستخدام توقيع Google بدلاً من توقيع منصّة، ما يعني أنّ الوحدة تفقد إمكانية الوصول إلى أذونات التوقيع.
بدلاً من ذلك، يحدِّد نظام التشغيل Android 11 إذن التوقيع الجديد
com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY
داخل وحدة CellBroadcast، ولا يمكن سوى الحِزم في الوحدة الحصول على
الإذن لأنّها موقَّعة بالمفتاح نفسه. يسمح هذا الإذن لتطبيق
CellBroadcastReceiver بالوصول الكامل إلى قاعدة البيانات داخل
CellBroadcastService.
تمنح المنصة إذن التشغيلandroid.permission.READ_CELL_BROADCASTS
لتطبيق الرسائل القصيرة التلقائي للنظام للوصول إلى سجل تنبيهات القصوى.
دمج وحدة CellBroadcast
يوضِّح هذا القسم كيفية دمج وحدة CellBroadcast.
الدمج مع "الإعدادات"
يمكنك تحديد مكان دمج إعدادات CellBroadcast في تطبيق "الإعدادات"
(يدخل المستخدمون النهائيون إلى صفحة إعدادات CellBroadcast من الإعدادات >
التطبيقات والإشعارات > الإعدادات المتقدّمة > تنبيه الطوارئ). لتشغيل
تطبيق CellBroadcastReceiver من تطبيق "الإعدادات"، عليك تغيير ملفوظات
الإعدادات التالية باستخدام اسم الحزمة
com.android.cellbroadcastreceiver
.
<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.android.cellbroadcastreceiver</string>
الدمج مع تطبيقات المراسلة
يمكنك دمج رابط تطبيق في تطبيقات المراسلة لفتح سجلّ رسائل البث عبر شبكة الجوّال. في تطبيق "الرسائل" على Android، تم دمج هذه الميزة في الإعدادات > الإعدادات المتقدّمة > إنذار الطوارئ. لدمج رابط في
تطبيق المراسلة الخاص بك، حدِّد المسار في تطبيق المراسلة وضبط اسم
المكوّن الخاص بوحدة CellBroadcast على
com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity
.
الدمج مع البريد الوارد للرسائل القصيرة
يمكنك تفعيل عرض رسائل CellBroadcast في تطبيق المراسلة التلقائي من خلال إلغاء الإعدادات التالية باستخدام تراكب موارد وقت التشغيل.
<item type="bool" name="enable_write_alerts_to_sms_inbox" />
بما أنّ منح الأذونات خارج نطاق وحدة CellBroadcast،
يجب منح الإذن AppOpsManager.OP_WRITE_SMS
لوحدة CellBroadcast
لتوفير دعم شامل. للحصول على مرجع لتنفيذ AOSP،
يُرجى الرجوع إلى هذا SmsApplication.java
التصحيح.
افتح تطبيق CellBroadcastReceiver.
يحتوي تطبيق CellBroadcastReceiver على نقاط الإطلاق التالية.
قائمة تطبيق "الإعدادات"
تطبيق (بما في ذلك التطبيقات التابعة لجهات خارجية)، مثل تطبيق رسائل يرتبط بملف تنقّل رسائل البث الخلوي
(اختياري) رمز تشغيل من شاشة Android الرئيسية أضافه المصنّع الأصلي للجهاز لمعرفة التفاصيل، يُرجى الاطّلاع على إضافة رمز تشغيل.
إعدادات تطبيق CellBroadcastReceiver
تعرض لقطات الشاشة التالية قائمة إعدادات تطبيق CellBroadcastReceiver.
الشكل 2: قائمة إعدادات تطبيق CellBroadcastReceiver
الشكل 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 في جنوب أفريقيا). بالنسبة إلى هذه القناة، لا تؤدي رسائل البث إلى ظهور مربّع حوار أو إشعار. بدلاً من ذلك، تظهر رسائل البث في حالة شريحة SIM ضمن قائمة الإعدادات أو في شريط الحالة (مثل عرض رمز بريدي).
يوفّر تنفيذ CellBroadcastService في Android إمكانية استخدام واجهتَي برمجة التطبيقات التاليتَين في خدمة البث الخلوي لتطبيقَي "الإعدادات" وSysUI من أجل الحصول على معلومات البث في القناة 50. لتنفيذ ذلك، اتّبِع الخطوات التالية:
سجِّل البث
android.telephony.action.AREA_INFO_UPDATED
واستبدِل اسم حزمة المُستلِمconfig_area_info_receiver_packages
من خلال طلب الحصول على إذن بالوصول إلى مساحة تخزين في جهاز Android.اربطها بـ
CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE
.
بما أنّ تطبيقَي "الإعدادات" وSysUI خارج نطاق ملف برمجي CellBroadcast، يجب تنفيذ التغييرات في SystemUI أو تطبيق "الإعدادات" لتوفير دعم شامل. للحصول على مرجع للتنفيذ، يُرجى الرجوع إلى تطبيق CellBroadcastService Settings.
التخصيص
لا يمكنك تعديل رمز المصدر الخاص بوحدة CellBroadcast مباشرةً، ولكن
يمكنك استخدام تراكبات موارد وقت التشغيل
(RROs) لمحاولة
تفعيل (أو إيقاف) المَعلمات
(على سبيل المثال، يمكنك تخصيص لون الإشعارات و
السمات في مربّعات الحوار). لإلغاء القيم التلقائية للمَعلمات المستخدَمة في
وحدة CellBroadcast، غيِّر اسم الحزمة المستهدَفة إلى
com.android.cellbroadcastreceiver
. بالإضافة إلى ذلك:
للحصول على قائمة بالإعدادات التي يمكن تداخلها، يُرجى الرجوع إلى
overlayable.xml
.للحصول على مثال على التنفيذ، يُرجى الرجوع إلى
RROSampleTestApp
في AOSP.
إذا كان التنفيذ لا يتضمّن موارد ترجمة سلاسل نصوص واجهة المستخدم أو إذا كانت الترجمات لا تلبّي توقعاتك، يمكنك إلغاء موارد الترجمة باستخدام ملف RRO أو العمل مع فريق الترجمة في Google لتحميل ملف الترجمة
سلاسل النصوص إلى وحدة CellBroadcast. في حال إلغاء موارد الترجمة، على Google عرض هذه السلاسل في overlayable.xml
للسماح بالإلغاء. إذا كنت بحاجة إلى المزيد من الإعدادات لتخصيص واجهة المستخدم، يُرجى التواصل مع
مجموعة دعم البث الخلوي.
نقل البيانات
يتضمّن نظام التشغيل Android 11 تطبيق CellBroadcast القديم، وهو آلية للحفاظ على بيانات التطبيق ونقلها (بما في ذلك إعدادات المستخدم وملفّات سجلّ تنبيهات الطوارئ) للأجهزة التي يتم ترقيتها إلى وحدة CellBroadcast. يجب أن تتضمّن عمليات تثبيت Android التي تستخدم وحدة CellBroadcast تطبيق CellBroadcast القديم في الإصدار الخاص بها لنقل البيانات. إذا كان عملية التنفيذ تستخدِم حلًا مخصّصًا للبث عبر شبكة الجوّال، عليك تحديد APK لملف ومقدّم محتوى البث عبر شبكة الجوّال (يمكنك إزالة APK لبث الرسائل القديمة عبر شبكة الجوّال بأمان في إصدار لاحق).
في الأجهزة التي تمت ترقيتها لاستخدام وحدة CellBroadcast، تُسترجع الوحدة البيانات
من تطبيق LegacyCellBroadcastApp في AOSP أو APK لـ CellBroadcastContentProvider الذي يحدّده المصنّع من خلال مرجع cellbroadcast-legacy
محدّد بوضوح.
استخدام حزمة APK لـ CellBroadcastContentProvider تحدّدها الشركة المصنّعة للجهاز
عند تحديد حزمة APK لـ CellBroadcastContentProvider، يجب أن تتّبع حزمة APK هذه المواصفات.
حزمة APK هي حزمة بدون واجهة لا تعرض سوى محتوى قاعدة بياناتها و
SharedPreferences
من خلال عنصرContentProvider
يحمل الإذنcellbroadcast-legacy
، ولا يمكن للتطبيقات التابعة لجهات خارجية الوصول إليها.يتم تطوير حزمة APK وامتلاكها من قِبل المصنّع الأصلي للجهاز، ويمكنه مواصلة استضافة مخطّط واجهة برمجة التطبيقات المخفي.
لنقل SharedPreferences
إلى وحدة CellBroadcast، يجب أن يتيح ملف APK لتطبيق
CellBroadcastContentProvider استخدام الأسلوب
ContentProvider.call
)
مع المَعلمات التالية:
- جهة إصدار الشهادة:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
- الطريقة:
@SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
Arg:
@SystemAPI CellBroadcast.Preference
في ما يلي قائمة بمفاتيح الإعدادات المفضّلة المشتركة المتوافقة مع وحدة CellBroadcast. تأتي البيانات من
SharedPreferences
لطريقةContentProvider.call
.
لنقل سجلّ الرسائل إلى وحدة البث الخلوي، يجب أن يتيح ملف APK لتطبيق
CellBroadcastContentProvider استخدام الأسلوب
ContentProvider.query
مع المَعلمات التالية:
- جهة إصدار الاعتماد:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
. تُدرِج أعمدة طلبات البحث سمات الرسائل المتوافقة مع وحدة CellBroadcast. تتلقّى البيانات (من قاعدة بياناتك) لطريقةContentProvider.query
.
للحصول على مرجع لتنفيذ CellBroadcastContentProvider,
، يُرجى الرجوع إلى
LegacyCellBroadcastContentProvider
.
الاختبار
تتحقّق مجموعة اختبار التوافق (CTS) لنظام التشغيل Android من وظائف
واجهات برمجة تطبيقات النظام التي تعتمد على التطبيقات. يمكنك أيضًا تشغيل وحدة CellBroadcast
unit tests/testappsp
.
إذا فعّل المصنّع الأصلي للجهاز الرمز السري لنظام CMAS على أحد الأجهزة، يمكن أن يتيح هذا الجهاز وضع تصحيح الأخطاء مع الميزات التالية.
يتم تجميع التنبيهات التجريبية ضمن التنبيهات الأخرى مع مفتاح تبديل للتشغيل/الإيقاف.
يتضمّن السجلّ جميع الرسائل التي تم استلامها ولكن لم يتم عرضها، مثل الرسائل المكرّرة أو الرسائل بلغة أخرى.
تعرِض الرسائل جميع المَعلمات المتاحة، بما في ذلك الرقم التسلسلي و رقم تعريف الرسالة وتاريخ انتهاء الصلاحية.
لتفعيل وضع تصحيح الأخطاء، اتصل بالرقم *#*#CMAS#*#* على تطبيق "الهاتف".
معلومات الاتصال
لمزيد من التفاصيل أو الأسئلة حول وحدة CellBroadcast، يُرجى التواصل مع مجموعة دعم CellBroadcast.