البث الخلوي

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

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

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

  • التطبيق CellBroadcastReceiver هو نظام التطبيق الافتراضي الذي التنبيهات مقابض الطارئة وغير الطارئة (مثل العنبر والتنبيهات الرئاسية) ويقدم المعلومات للمستخدمين النهائيين بناء على الناقل والأنظمة الإقليمية.

يوضح الشكل التالي تدفق رسائل البث الخلوي.

تدفق الرسائل CellBroadcastReceiver

الشكل تدفق الرسالة 1. CellBroadcastReceiver

  1. طبقة واجهة راديو (ريلاينس اندستريز) تخطر InBoundSMSHandler عن CDMA / GSM خدمة البث الخلوي SMS.

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

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

  4. يعرض تطبيق CellBroadcastReceiver الرسالة إلى المستخدم.

تنسيق الوحدة

يتم تضمين CellBroadcastService والتطبيق CellBroadcastReceiver في واحد APEX الملف ( com.google.android.cellbroadcast )، والذي يتوفر للأجهزة تشغيل الروبوت 11 أو أعلى. تشمل الوحدة التعليمات البرمجية في package/app/CellBroadcastReceiver ويهاجر الطبقات الإطار القائم على packages/modules/CellBroadcastService .

تبعيات الوحدة النمطية

يتفاعل وحدة خدمة البث الخلوي مع الإطار باستخدام مستقرة فقط @SystemApi (لا @hide واجهات برمجة التطبيقات) وتعتمد على مكتبات ثابت التالية.

  • Androidx.legacy_legacy-support-v13
  • Androidx.recyclerview_recyclerview
  • Androidx.preference_preference
  • androidx.legacy_legacy-preference-v14
  • androidx.appcompat_appcompat

يمكنك تخصيص التكوين باستخدام تراكب الموارد وقت التشغيل (RROs) .

تكوين الإذن

يتم توقيع وحدة CellBroadcast بتوقيع Google بدلاً من توقيع النظام الأساسي ، مما يعني أن الوحدة تفقد الوصول إلى أذونات التوقيع. بدلا من ذلك، الروبوت 11 يحدد إذن توقيع جديد com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY داخل وحدة خدمة البث الخلوي. يمكن فقط للحزم الموجودة في الوحدة النمطية الحصول على الإذن حيث أنها موقعة بالمفتاح نفسه. يسمح هذا الإذن لتطبيق CellBroadcastReceiver بالوصول الكامل إلى قاعدة البيانات داخل CellBroadcastService.

منصة تمنح android.permission.READ_CELL_BROADCASTS وقت التشغيل إذن إلى التطبيق SMS النظام الافتراضي للوصول إلى التاريخ من التنبيهات في حالات الطوارئ.

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

يصف هذا القسم كيفية دمج وحدة البث الخلوي.

التكامل مع الإعدادات

يمكنك تحديد مكان لدمج إعدادات خدمة البث الخلوي في تطبيق الإعدادات (المستخدمين النهائيين الوصول إلى صفحة إعدادات خدمة البث الخلوي من الإعدادات> التطبيقات والتبليغات> خيارات متقدمة> تنبيه الطوارئ). إطلاق التطبيق CellBroadcastReceiver من إعدادات التطبيق، تغيير تكوينات وضع التالية مع اسم الحزمة com.google.android.cellbroadcastreceiver .

<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.google.android.cellbroadcastreceiver</string>

التكامل مع تطبيقات المراسلة

يمكنك دمج رابط التطبيق في تطبيقات المراسلة لفتح سجل رسائل CellBroadcast. في تطبيق Android التراسل، وهذا تم دمجها في إعدادات> خيارات متقدمة> تنبيه الطوارئ. لدمج ارتباط في التطبيق الرسائل الخاصة بك، وتحديد المسار في تطبيق المراسلة وتكوين اسم المكون لوحدة خدمة البث الخلوي كما com.google.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity .

التكامل مع صندوق الوارد للرسائل القصيرة

يمكنك تمكين عرض رسائل CellBroadcast في تطبيق المراسلة الافتراضي عن طريق تجاوز التكوين التالي باستخدام تراكب مورد وقت التشغيل.

<item type="bool" name="enable_write_alerts_to_sms_inbox" />

لأن منح أذونات خارج نطاق وحدة خدمة البث الخلوي، يجب منح AppOpsManager.OP_WRITE_SMS إذن إلى وحدة خدمة البث الخلوي لتقديم الدعم من النهاية إلى النهاية. لتنفيذ AOSP إشارة، إشارة إلى هذا SmsApplication.java التصحيح .

بدء تشغيل تطبيق CellBroadcastReceiver

يحتوي تطبيق CellBroadcastReceiver على نقاط الإطلاق التالية.

  • قائمة تطبيق الإعدادات.

  • أحد التطبيقات (بما في ذلك تطبيقات الجهات الخارجية) مثل تطبيق الرسائل الذي يرتبط بمحفوظات رسائل CellBroadcast.

  • (اختياري) رمز تشغيل من شاشة Android الرئيسية مضافًا بواسطة OEM. لمزيد من التفاصيل، انظر إضافة رمز إطلاق .

تُظهر لقطات الشاشة التالية قائمة إعدادات تطبيق 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 بقائمة الإعدادات ، أو في شريط الحالة (على سبيل المثال ، عرض رمز بريدي).

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

  • بث تسجيل android.telephony.action.AREA_INFO_UPDATED وتجاوز اسم الحزمة استقبال config_area_info_receiver_packages من خلال RRO.

  • ربط ل CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE .

نظرًا لأن الإعدادات وتطبيقات SysUI خارج نطاق وحدة CellBroadcast ، يجب عليك تنفيذ التغييرات في SystemUI أو تطبيق الإعدادات لتوفير دعم شامل. لتنفيذ إشارة، إشارة إلى التطبيق إعدادات CellBroadcastService .

التخصيص

لا يمكنك تعديل مباشرة شفرة المصدر من وحدة خدمة البث الخلوي، ولكن يمكنك استخدام وقت التشغيل الموارد تراكب (RROs) لتمكين (أو تعطيل) المعلمات (على سبيل المثال، يمكنك تخصيص لون الإخطارات وأبعاد على الحوارات). لتجاوز القيم الافتراضية من المعايير المستخدمة في وحدة خدمة البث الخلوي، تغيير اسم الحزمة الهدف com.google.android.cellbroadcastreceiver . بالإضافة الى:

  • للحصول على قائمة تكوينات overlayable، راجع overlayable.xml .

  • لتنفيذ سبيل المثال، تشير إلى RROSampleTestApp في AOSP.

إذا كان التنفيذ يفتقد إلى موارد ترجمة سلسلة واجهة المستخدم أو إذا كانت الترجمات لا تفي بتوقعاتك ، فيمكنك تجاوز موارد الترجمة باستخدام RRO أو العمل مع فريق ترجمة Google لترجمة السلسلة الأولية إلى وحدة CellBroadcast. إذا تجاوز موارد الترجمة، يجب أن جوجل فضح تلك السلاسل في overlayable.xml تسمح بتجاوز. إذا كنت بحاجة إلى المزيد من تكوينات لتخصيص واجهة المستخدم، الوصول إلى مجموعة دعم خدمة البث الخلوي .

ترحيل البيانات

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

على الأجهزة ترقية إلى استخدام وحدة خدمة البث الخلوي، وحدة جلب البيانات من إما LegacyCellBroadcastApp AOSP أو تعريف OEM-CellBroadcastContentProvider APK من خلال اضحة المعالم cellbroadcast-legacy السلطة.

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

  • وAPK هو APK مقطوعة الرأس والتي تظهر فقط محتويات قاعدة البيانات الخاصة به و SharedPreferences من خلال ContentProvider الكائن مع cellbroadcast-legacy السلطة، وغير قابل للوصول إلى تطبيقات طرف ثالث.

  • تم تطوير APK وامتلاكه بواسطة OEM ، حيث يمكن لمصنّع المعدات الأصلية الاستمرار في استضافة مخطط API المخفي.

ترحيل SharedPreferences إلى وحدة خدمة البث الخلوي، يجب أن CellBroadcastContentProvider APK دعم ContentProvider.call طريقة) مع المعلمات التالية:

  • السلطة: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • الطريقة: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • الارجنتين: @SystemAPI CellBroadcast.Preference

    هذه قائمة بمفاتيح التفضيل المشتركة المدعومة لوحدة CellBroadcast. وتأتي هذه البيانات من SharedPreferences ل ContentProvider.call الأسلوب.

ترحيل التاريخ رسالة إلى وحدة خدمة البث الخلوي، يجب أن CellBroadcastContentProvider APK دعم ContentProvider.query الأسلوب مع المعلمات التالية:

  • السلطة: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI . قائمة أعمدة الاستعلام تدعم خصائص الرسالة لوحدة CellBroadcast. يأخذ في البيانات (من قاعدة البيانات) ل ContentProvider.query الأسلوب.

لتنفيذ مرجعية ل CellBroadcastContentProvider, الرجوع إلى LegacyCellBroadcastContentProvider .

اختبارات

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

اذا كانت OEM مكن CMAS شفرة سرية لجهاز، يمكن أن يدعم الجهاز وضع التصحيح مع الميزات التالية.

  • يتم تجميع التنبيهات اختبار تحت تنبيهات أخرى مع تشغيل / إيقاف التبديل.

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

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

لتمكين وضع التصحيح، اطلب * # * # CMAS # * # * على طالب.

اتصل

لمزيد من التفاصيل أو أسئلة حول وحدة خدمة البث الخلوي، اتصل فريق دعم خدمة البث الخلوي .