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

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

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

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

يوجد تطبيق الناقل الافتراضي في platform/frameworks/base/packages/CarrierDefaultApp/ .

تطبيق

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

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

إشارات

يدعم إطار عمل 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 ). على سبيل المثال، يؤدي التعيين التالي إلى تعطيل أسماء APN المُقاسة ويعرض إشعار البوابة الإلكترونية عند إعادة التوجيه:

<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 وBluetooth أثناء حالة عدم التوازن.
  8. قم بإيقاف تشغيل شبكة Wi-Fi. تحقق من واجهة المستخدم الخاصة بإشعار عدم التوازن، ومن عدم إعادة توجيه حركة التصفح العادية إلى موقع الويب الخاص بتسجيل شركة الاتصالات. تحقق من أن النقر على الرابط الموجود في واجهة مستخدم الإشعارات ينقل المتصفح إلى موقع ويب تسجيل شركات الاتصالات.
  9. تأكد من أن تبديل وضع الطائرة لا يؤدي إلى إعادة تعيين حالة اختناق حركة المرور.
  10. تأكد من أن تبديل بطاقة SIM داخل الخدمة يؤدي إلى إعادة تعيين حالة حركة مرور الشبكة.
  11. تأكد من أن إعادة إدخال بطاقة SIM غير المتوازنة يؤدي إلى إعادة تشغيل إعادة توجيه حركة المرور والحصول على اختناق حركة مرور الشبكة مرة أخرى.
  12. تأكد من أن إعادة تشغيل الهاتف تؤدي إلى إعادة تنشيط إعادة التوجيه وإعادة خنق حركة المرور وواجهة مستخدم الإشعارات.
  13. اضغط على إشعار "captiveportal". تحقق من إنشاء اتصال شبكة مقيد للسماح للمستخدم بإضافة الاعتمادات.
  14. تأكد من أن إعادة تعبئة رصيد بطاقة SIM أو إعادة التنشيط تؤدي إلى استعادة حركة مرور الشبكة الخلوية، واختفاء رابط Telco وعدم وجود إشعار بالرصيد.
  15. اختبار التعقل بعد استعادة خدمة البيانات.

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