تهيئة مشغل شبكة الجوال

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

يمكن تحميل تطبيق مشغّل شبكة الجوّال الموقَّع بشكل صحيح إما مسبقًا في صورة النظام، مُثبّتًا تلقائيًا أو يدويًا من خلال متجر التطبيقات. التطبيق يطلب النظام الأساسي طلب الإعدادات من الإعدادات. بما في ذلك:

  • شبكات التجوال/غير التجوال
  • بريد صوتي مرئي
  • إعدادات شبكة الرسائل القصيرة (SMS) ورسائل الوسائط المتعددة (MMS)
  • إعدادات VoLTE/IMS

إن تحديد القيم المطلوب إرجاعها متروك تمامًا لتطبيق مشغّل شبكة الجوّال. ويمكن أن تكون ديناميكية استنادًا إلى المعلومات التفصيلية التي يتم تمريرها إلى التطبيق من خلال بدون خادم.

تتمثل الفوائد الرئيسية لهذا المنهج في ما يلي:

  • التهيئة الديناميكية - دعم مفاهيم مثل مشتقة غير تابعة لمركز عملائي، مثل، مشغّلو الشبكات الافتراضية للأجهزة الجوّالة (MVNOs) أو يشتركون العملاء في خدمات إضافية.
  • الدعم للأجهزة التي تُباع من خلال أي قناة: على سبيل المثال، يمكن ضبط هاتف السوق المفتوح تلقائيًا على الإعدادات عن طريق تنزيل تطبيق من متجر التطبيقات.
  • الأمان: امتياز توفير هذه الإعدادات هو يتم تقديمها فقط للتطبيقات الموقَّعة من قِبل مشغِّل شبكة الجوّال.
  • واجهة برمجة تطبيقات محددة - تم تخزين هذه الإعدادات في السابق في الغالب في تراكبات XML الداخلية داخل إطار العمل وليس من خلال منتدى عام واجهة برمجة التطبيقات. تعد واجهة برمجة تطبيقات تهيئة مشغل شبكة الجوال في Android 6.0 عامة ومحددة بشكل جيد.

آلية العمل

تحميل الإعدادات

إعداد مشغّل شبكة الجوّال الذي توفره هذه الميزة هو مجموعة من أزواج المفتاح/القيمة. التي تغيّر سلوكيات مختلفة مرتبطة بالاتصال الهاتفي في المنصة.

يتم تحديد مجموعة القيم لجهاز معين من خلال الاستعلام عن المكونات التالية بالترتيب:

  1. تطبيق مشغل شبكة الجوال (هذا اختياري، ولكنه يوصى به المكان الذي يتم فيه إجراء إعدادات إضافية غير تلك المتوفّرة في أداة Android Open مشروع المصدر (AOSP))
  2. تطبيق إعداد النظام الأساسي المرفق مع صورة النظام
  3. قيم افتراضية، يتم ترميزها بشكل ثابت في إطار العمل (تعادل السلوك السابق إلى Android 6.0)

تطبيق تهيئة النظام الأساسي

يتم إرفاق تطبيق إعداد نظام أساسي عام مع صورة النظام. يمكن أن يوفر هذا التطبيق لأي متغيرات لا يستخدمها تطبيق مشغل شبكة الجوال العادي. إعدادات النظام الأساسي يمكن العثور على تطبيق (في Android 6.0) في: packages/apps/CarrierConfig

الغرض من هذا التطبيق هو توفير بعض الإعدادات لكل شبكة عندما يختار مشغّل شبكة الجوّال إذا لم يكن التطبيق مثبَّتًا، ويجب أن يُجري مشغّلو شبكات الجوّال/المصنّعون الأصليون للأجهزة تغييرات بسيطة فقط عليه في صورهم الخاصة. بدلاً من ذلك، يجب أن يوفّر مشغّل شبكة الجوّال التطبيق المنفصل لمشغّل شبكة الجوّال. لتخصيص شركة النقل، ما يسمح بتوزيع التحديثات من خلال وسائل مثل كمتاجر التطبيقات.

كيفية منح الامتياز لتطبيق مشغّل شبكة الجوّال

يجب توقيع تطبيق مشغّل شبكة الجوّال المعنيّ باستخدام الشهادة نفسها المتوفّرة على شريحة SIM، على النحو الموضَّح في امتيازات مشغِّل شبكة الجوّال في UICC.

المعلومات التي يتم إرسالها إلى تطبيق مشغّل شبكة الجوّال

يتم تقديم القيم التالية إلى تطبيق مشغّل شبكة الجوّال، ما يتيح إنشاء قرار ديناميكي بشأن القيم المطلوب عرضها:

  • MCC
  • MNC
  • SPN
  • رقم التعريف الدولي للمشترك في خدمات الجوّال (IMSI)
  • رقم GID1
  • رقم GID2
  • رقم تعريف مشغِّل شبكة الجوّال

لمزيد من المعلومات حول دمج أرقام تعريف مشغّلي شبكات الجوّال، يُرجى الاطّلاع على دمج أرقام تعريف مشغّلي شبكات الجوّال مع CarrierConfig

عند تحميل إعدادات مشغّل شبكة الجوّال

يتم إنشاء قائمة أزواج القيم الرئيسية على النحو التالي:

  • عند تحميل شريحة SIM (تشغيل التشغيل أو التبديل السريع لشريحة SIM)
  • عندما يشغّل تطبيق مشغّل شبكة الجوّال عملية إعادة التحميل يدويًا
  • عند تحديث تطبيق مشغّل شبكة الجوّال

يمكنك الاطّلاع على android.service.carrier.CarrierService#onLoadConfig() للحصول على المزيد من التفاصيل.

استخدام الإعدادات

عندما يتم إنشاء التهيئة، يتم استخدام القيم الموجودة داخلها لضبط قيم مختلفة لضبط إعدادات النظام، بما في ذلك:

  • إعدادات الاتصال الهاتفي في إطار العمل الداخلي
  • قيم الإعدادات التي تعرضها حزمة تطوير البرامج (SDK)، على سبيل المثال، في SmsManager
  • إعدادات التطبيقات مثل قيم اتصال VVM في Dialer

مفاتيح الإعداد

يتم تحديد قائمة المفاتيح كجزء من حزمة تطوير البرامج (SDK) المتاحة للجميع في android.telephony.CarrierConfigManager. ولا يمكن تغييرها ضمن مستوى واجهة برمجة التطبيقات نفسه انظر الجدول أدناه للحصول على ملخص للمفاتيح.

إنشاء التطبيق

إنشاء التطبيق

يجب أن يستهدف تطبيقك المستوى 23 من واجهة برمجة التطبيقات لنظام التشغيل Android 6.0.

يُرجى تعريف الفئة التي تلغي السمة android.service.carrier.CarrierService.

  1. يمكنك تجاهُل onLoadConfig لعرض القيم التي تريد عرضها التوريد على أساس الكائن service.carrier.CarrierIdentifier تمت بنجاح.
  2. إضافة منطق لاستدعاء notifyConfigChangedForSubId في السيناريوهات قد تتغيّر فيه إعدادات شركة النقل بمرور الوقت (على سبيل المثال، عندما مستخدم يضيف خدمات إضافية إلى حسابه).

فيما يلي مثال على ذلك:

public class SampleCarrierConfigService extends CarrierService {

    private static final String TAG = "SampleCarrierConfigService";

    public SampleCarrierConfigService() {
        Log.d(TAG, "Service created");
    }

    @Override
    public PersistableBundle onLoadConfig(CarrierIdentifier id) {
        Log.d(TAG, "Config being fetched");
        PersistableBundle config = new PersistableBundle();
        config.putBoolean(
            CarrierConfigManager.KEY_CARRIER_VOLTE_AVAILABLE_BOOL, true);
        config.putBoolean(
            CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, false);
        config.putInt(CarrierConfigManager.KEY_VOLTE_REPLACEMENT_RAT_INT, 6);
        // Check CarrierIdentifier and add more config if needed
        return config;
    }
}

لمزيد من التفاصيل، يُرجى مراجعة android.service.carrier.CarrierService المرجع.

إدخال اسم للفئة في البيان

فيما يلي مثال على ذلك:

<service android:name=".SampleCarrierConfigService"
android:label="@string/service_name"
android:permission="android.permission.BIND_CARRIER_SERVICES">
      <intent-filter>
      <action android:name="android.service.carrier.CarrierService"/></intent-filter>
</service>

توقيع التطبيق بنفس الشهادة على شريحة SIM

راجِع امتيازات مشغِّل شبكة الجوّال في واجهة المستخدم الموحدة (UICC) للاطّلاع على متطلبات المشروع.

إضافة أسماء نقاط الوصول (APN) باستخدام تطبيق مشغّل شبكة جوّال

لإضافة أسماء نقاط الوصول (APN) آليًا من تطبيق مشغّل شبكة الجوّال (على سبيل المثال، أثناء شريحة SIM التفعيل)، واستخدام ContentResolver واجهات برمجة تطبيقات لإضافة عناصر APN إلى موفّر محتوى الذي تم تحديده من خلال معرِّف الموارد المنتظم (URI) android.provider.Telephony.Carriers.CONTENT_URI للحصول على مزيد من المعلومات حول بنية الجدول لمعرف الموارد المنتظم (URI) للمحتوى، راجع Telephony.Carriers

لمزيد من المعلومات، يُرجى مراجعة APN وCarrierConfig.

اختبار التطبيق

عند إنشاء تطبيق الضبط، يمكنك اختبار الرمز عبر:

  • شريحة SIM تحتوي على توقيع شهادة صالح
  • جهاز يعمل بالإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث، مثل جهاز Android