تخصيص سلوك الجهاز للمستخدمين غير المتوازنين

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

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

الأمثلة والمصدر

يمكنك العثور على تطبيق مشغّل شبكة الجوّال التلقائي على platform/frameworks/base/packages/CarrierDefaultApp/..

التنفيذ

تم إعداد تطبيق مشغّل شبكة الجوّال التلقائي لتقديم تجربة أفضل شركات تشغيل شبكة الجوّال التي لم يتم إعدادها بشكلٍ فوري. يمكن لمشغّلي شبكات الجوّال استخدام هذا السلوك التلقائي. ويمكنهم أيضًا إلغاء السلوك التلقائي من خلال إضافة عمليات ربط إجراءات الإشارة إلى ملف XML الخاص بتهيئة مشغل شبكة الجوال. يمكنهم تحديد عدم استخدام التطبيق الافتراضي بدلاً من ذلك، يمكنهم استخدام امتيازات UICC مع تطبيق مشغّل شبكة الجوّال المستقل.

مقدمة عن التنفيذ

Signals

يتيح إطار عمل Android ضبط الإجراءات على المَعلمات التالية. الإشارات:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

توجد هذه الإشارات في frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java

الإجراءات المتاحة

يحدِّد تطبيق مشغّل شبكة الجوّال التلقائي مجموعة من الإجراءات المتوافقة التي يمكن ربطها بها. الإشارات المتوافقة. يتم تحديد ذلك في CarrierActionUtils.java:

    public static final int CARRIER_ACTION_ENABLE_METERED_APNS               = 0;
    public static final int CARRIER_ACTION_DISABLE_METERED_APNS              = 1;
    public static final int CARRIER_ACTION_DISABLE_RADIO                     = 2;
    public static final int CARRIER_ACTION_ENABLE_RADIO                      = 3;
    public static final int CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION          = 4;
    public static final int CARRIER_ACTION_SHOW_NO_DATA_SERVICE_NOTIFICATION = 5;
    public static final int CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS          = 6;

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

عمليات الربط التلقائية لإجراءات الإشارة

اضبط الإجراءات التلقائية باتّباع هذه العملية:

  1. حدِّد مفتاحًا للإشارات المتوافقة.

    يتم تحديد الإشارة التلقائية إلى عمليات ربط الإجراءات في CarrierConfigManager.java. لكل إشارة من الإشارات المتوافقة مفتاح:

    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array";
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY =
    "carrier_default_actions_on_dcfailure_string_array";
  2. ربط الإجراءات التلقائية للإشارة إلى المفاتيح.

    ترتبط أرقام تعريف الإجراءات التلقائية بمفاتيح الإشارات:

    sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY,                new String[]{
                    "1, 4"
                    //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION
                    // 4: CARRIER_ACTION_DISABLE_METERED_APNS
             });
    

    يربط إطار عمل الاتصال الهاتفي هذه الإجراءات بالإشارات المقابلة.

إلغاء الإجراءات التلقائية

يمكنك تحديد إجراءات مخصّصة للإشارات المتوافقة في ملف XML الخاص بإعدادات مشغّل شبكة الجوّال. من خلال ربط معرّفات الإجراءات بمفاتيح الإشارات (المحدّدة في CarrierConfigManager.java). على سبيل المثال، عملية التعيين التالية لإيقاف أسماء نقاط الوصول التي تفرض تكلفة استخدام وعرض إشعار للبوابة عند إعادة التوجيه:

<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
            <item value="1" />
            <item value="4" />
</string-array>

يُحمِّل إطار عمل الاتصال الهاتفي هذه الإعدادات ويتجاهل الإعدادات التلقائية مناسبة.

التحقُّق

لا يتم إجراء اختبارات CTS أو CTS Verifier أو GTS لهذه الميزة.

استخدِم اختبارات التحقق اليدوي التالية للتحقّق من صحة الميزة:

  1. التحقّق من صحة إشعار إشارة عدم رصيد جهاز الاتصالات
  2. التحقّق من الحدّ الأقصى المسموح به لإعادة توجيه حركة البيانات عندما يكون الاتصال بشبكة Wi-Fi أو في حالة عدم التوازن
  3. التأكّد من إيقاف حركة بيانات الشبكة وظهور إشعار واجهة المستخدم أثناء الخروج من حالة التوازن.
  4. التحقّق من صحة وظيفة المكالمة الصوتية/VoLTE عندما يكون الجهاز غير متوازن.
  5. تأكَّد من أنّ مكالمة الفيديو محظورة في حالة "غير متوازن".
  6. عند تفعيل شبكة Wi-Fi، يمكنك التأكُّد من أنّ المستخدم يمكنه مواصلة تصفُّح الويب والتصفّح. حركة بيانات الشبكة لا تؤدي إلى تشغيل حركة بيانات الشبكة في حالة عدم التوازن الولاية.
  7. التحقق من صحة وظائف Wi-Fi وWFC والبلوتوث عندما يكون الجهاز غير متوازن الولاية.
  8. أوقِف شبكة Wi-Fi. تحقَّق من واجهة المستخدم للإشعار غير المتوازن لم تتم إعادة توجيه حركة بيانات التصفّح إلى الموقع الإلكتروني الخاص بتسجيل الاتصالات. إثبات الهوية يؤدي النقر على الرابط في واجهة مستخدم الإشعار إلى نقل المتصفح إلى شركة الاتصالات موقع التسجيل لدينا.
  9. التأكّد من أنّ تبديل وضع الطيران لا يؤدي إلى إعادة ضبط تقييد حركة المرور الولاية.
  10. التأكّد من أنّ تبديل شريحة SIM داخل الخدمة يؤدي إلى إعادة ضبط حركة بيانات الشبكة الولاية.
  11. تأكَّد من أنّ إعادة إدخال شريحة SIM غير المتوازنة تؤدي إلى إعادة توجيه حركة المرور. ويتسبب في تقييد حركة بيانات الشبكة مرة أخرى.
  12. تأكد من أن إعادة تشغيل الهاتف تؤدي إلى إعادة تنشيط إعادة التوجيه وإرجاع واجهة المستخدم الخاصة بالإشعارات وقيود المرور
  13. انقر على "بوابة الأسر". . التحقق من شبكة محظورة لإنشاء اتصال للسماح للمستخدم بإضافة أرصدة.
  14. تأكَّد من أنّ إعادة تعبئة رصيد شريحة SIM أو إعادة تفعيلها تؤدي إلى ظهور شبكة الجوّال استعادة البيانات، ورابط Telco وبدون إشعار بالرصيد على بُعد.
  15. اختبار السلامة بعد استعادة خدمة البيانات.

يوفّر التطبيق التلقائي بعض الأمثلة على اختبارات الوحدات ونص برمجي لتشغيلها. (اطّلِع على tests/runtest.sh). عند تنفيذ إصدار مخصص أو سلوكك، فيجب عليك عكس هذه التخصيصات في اختبارات الوحدة المخصصة.