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