התאמה אישית של התנהגות המכשיר למשתמשים עם יתרה או חוב

מכשירי Android ללא יתרת נתונים מאפשרים תעבורת רשת, ולכן חברות סלולר וחברות טלקום נדרשות להטמיע פרוטוקולים לצמצום הסיכון. מערכת Android מטמיעה פתרון כללי שמאפשר לספקי סלולר ולחברות טלקום לציין מתי היתרה במכשיר נגמרה.

פלטפורמת Android מספקת אפליקציה של ספק עם התנהגות ברירת מחדל לשיכוך תנועה שמבוססת על אות זיהוי של פורטל שבוי. היא גם מספקת לספקי סלולר ול-OEM הזדמנות להתאים אישית את ההתנהגות בעלות נמוכה ועם גמישות רבה.

דוגמאות ומקור

אפליקציית הספק שמוגדרת כברירת מחדל נמצאת במיקום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>

ה-framework של הטלפוניה טוען את ההגדרות האלה ומבטל את פעולות ברירת המחדל.

אימות

אין בדיקות 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 או ההפעלה מחדש שלו גורמות לתנועה ברשת הסלולרית להתחדש, והקישור לחברת הטלקום וההתראה על היעדר יתרה נעלמים.
  15. בדיקת תקינות אחרי שחזור של שירות נתונים.

אפליקציית ברירת המחדל מספקת כמה דוגמאות לבדיקות יחידה וסקריפט להרצת הבדיקות האלה (ראו tests/runtest.sh). כשמטמיעים גרסה או התנהגות מותאמת אישית, צריך לשקף את ההתאמות האלה בבדיקות יחידה ייעודיות.