بث خلوي

تعمل وحدة CellBroadcast على تقليل الجهود المتكررة التي تبذلها المصنّعين الأصليّين للأجهزة (ما يؤدي بدوره إلى تقليل التجزئة في منظومة Android المتكاملة وتوفير سلوك متسق للمستخدمين النهائيين) وتساعد على تبسيط اختبار مشغّلي شبكات الجوّال و الحصول على الاعتمادات للمتطلبات المتعلّقة بـ CellBroadcast (لأنّه لا يمكن للمصنّعين الأصليّين للأجهزة تعديل الرمز). هذه الوحدة قابلة للتحديث، ما يعني أنّه يمكنها تلقّي تحديثات لتحسين وظائفها خارج دورة إصدارات Android العادية.

تنسيق الحزمة

تتألف وحدة CellBroadcast من الخدمة والتطبيق التاليَين.

  • توفّر خدمة CellBroadcastService فك ترميز الرسائل القصيرة عبر CellBroadcast، وتحديد حدود جغرافية لتنبيهات الطوارئ اللاسلكية (WEA) 3.0، والتحقّق من تكرار الرسائل، وبث الرسائل إلى التطبيقات. وهي خدمة مراسلة مخصّصة لمستخدم واحد مع مستخدمين متعدّدين في منطقة محدّدة جغرافيًا، وهي مصمّمة لإرسال الرسائل إلى مستخدمي هواتف محمولة متعدّدين في منطقة محدّدة جغرافيًا في الوقت نفسه. يتم تحديد الخدمة من قِبل لجنة ETSI لتكنولوجيا GSM و3GPP، وهي جزء من معايير الاتصالات السلكية واللاسلكية.

  • تطبيق CellBroadcastReceiver هو تطبيق نظام تلقائي يعالج التنبيهات المتعلقة بالطوارئ وغير المتعلقة بالطوارئ (مثل تنبيهات Amber وتنبيهات الرئاسة) ويقدّم المعلومات للمستخدمين النهائيين استنادًا إلى اللوائح المتعلقة بمشغّلي شبكة الجوّال واللوائح الإقليمية.

مسار رسائل البث الخلوي

يعرض الشكل التالي مسار رسالة CellBroadcast.

مسار رسائل CellBroadcastReceiver

الشكل 1: مسار رسائل CellBroadcastReceiver

  1. تُرسِل طبقة واجهة الراديو (RIL) إشعارًا إلى InBoundSMSHandler بشأن تلقّي رسالة قصيرة من نظام CDMA/GSM CellBroadcast.

  2. يعيد الإطار توجيه رسالة CellBroadcast SMS إلى وحدة CBS لتحليل الرسالة الواردة ومعالجتها.

  3. بعد معالجة الرسالة، تعيد خدمة CellBroadcastService توجيه النية إلى تطبيق CellBroadcastReceiver التلقائي للنظام.

  4. يعرض تطبيق 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.

قائمة إعدادات تطبيق 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.