بث خلوي

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

تنسيق الحزمة

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

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

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

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

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

مسار رسالة CellBroadcastcast

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

  1. ترسِل طبقة الواجهة اللاسلكية (RIL) إشعارًا إلى InBoundSMSHandler بشأن الرسائل القصيرة SMS للبث عبر CDMA/GSM.

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

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

  4. يعرض تطبيق CellBroadcast Listenr الرسالة للمستخدم.

تنسيق الوحدة

يتم تضمين 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" لتطبيق الرسائل القصيرة SMS الخاص بالنظام التلقائي للوصول إلى سجلّ تنبيهات الطوارئ.

دمج وحدة البث الخلوي

يوضِّح هذا القسم كيفية دمج وحدة 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: شاشة سجلّ تنبيهات الطوارئ

إضافة رموز التشغيل

يمكنك تفعيل الوصول إلى سجلّ رسائل 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 ضمن قائمة الإعدادات أو في شريط الحالة (مثل عرض رمز بريدي).

يوفّر تنفيذ CellBroadcastService في Android إمكانية استخدام واجهتَي برمجة التطبيقات التاليتَين في خدمة البث الخلوي لتطبيقَي "الإعدادات" وSysUI من أجل الحصول على معلومات البث في القناة 50. لتنفيذ ذلك، اتّبِع الخطوات التالية:

  • سجِّل البث android.telephony.action.AREA_INFO_UPDATED واستبدِل اسم حزمة المُستلِم config_area_info_receiver_packages من خلال طلب الحصول على إذن بالوصول إلى مساحة تخزين قابلة للقراءة والكتابة.

  • اربطها بـ 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 للسماح بتجاوزها. إذا كنت بحاجة إلى المزيد من عمليات الضبط لتخصيص واجهة المستخدم، يُرجى التواصل مع مجموعة دعم CellBroadcast.

نقل البيانات

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

في الأجهزة التي تمت ترقيتها لاستخدام وحدة CellBroadcast، تُسترجع الوحدة البيانات من تطبيق AOSP LegacyCellBroadcastApp أو APK CellBroadcastContentProvider الذي يحدّده المصنّع الأصلي للجهاز من خلال مرجع cellbroadcast-legacy محدّد بوضوح.

استخدام حزمة APK لـ CellBroadcastContentProvider تحدّدها الشركة المصنّعة للجهاز

عند تحديد حزمة APK CellBroadcastContentProvider، يجب أن تتّبع حزمة APK هذه المواصفات.

  • حزمة 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.

الاختبار

تتحقّق "مجموعة اختبار التوافق مع Android" (CTS) من وظائف واجهات برمجة تطبيقات النظام التي تعتمد على التطبيق. يمكنك أيضًا تشغيل وحدة CellBroadcast unit tests/testappsp.

إذا فعّل المصنّع الأصلي للجهاز الرمز السري لنظام CMAS على أحد الأجهزة، يمكن أن يتيح هذا الجهاز وضع تصحيح الأخطاء مع الميزات التالية.

  • يتم تجميع التنبيهات التجريبية ضمن التنبيهات الأخرى مع زرّ للتفعيل أو الإيقاف.

  • يتضمن السجلّ جميع الرسائل التي تم استلامها ولكن لم يتم عرضها، مثل الرسائل المكررة أو الرسائل بلغة أخرى.

  • تعرِض الرسائل جميع المَعلمات المتاحة، بما في ذلك الرقم التسلسلي و رقم تعريف الرسالة وتاريخ انتهاء الصلاحية.

لتفعيل وضع تصحيح الأخطاء، اطلب *#*#CMAS#*#* في برنامج الاتصال.

معلومات الاتصال

لمزيد من التفاصيل أو الأسئلة حول وحدة CellBroadcast، يُرجى التواصل مع مجموعة دعم CellBroadcast.