מכשירי Android ללא איזון נתונים מאפשרים תעבורת נתונים ברשת דרך, דרישה ספקים וחברות טלקומוניקציה להטמיע פרוטוקולים של מיטיגציה. ב-Android מוטמעת פתרון כללי שמאפשר לספקים ולחברות תקשורת לציין כשהמכשירים נגמרו האיזון.
פלטפורמת Android מספקת אפליקציית ספק שמוגדרת כברירת מחדל עם התנהגות ברירת מחדל צמצום התנועה על סמך אות זיהוי פורטל שבוי. הוא גם מספק לספקים וליצרני ציוד מקורי את ההזדמנות להתאים אישית את ההתנהגות בעלות נמוכה גמישות רבה.
דוגמאות ומקור
אפליקציית הספק שמוגדרת כברירת מחדל נמצאת בכתובת platform/frameworks/base/packages/CarrierDefaultApp/.
הטמעה
אפליקציית הספק שמוגדרת כברירת מחדל מוגדרת כך שחוויית השימוש תהיה טובה יותר ספקים שלא הוגדרו מראש. ספקים יכולים להשתמש בהתנהגות ברירת המחדל הזו. הם יכולים גם לשנות את התנהגות ברירת המחדל על ידי הוספת מיפויים של אותות לפעולה אל קובץ ה-XML עם התצורה של הספק. הם יכולים להחליט לא להשתמש באפליקציית ברירת המחדל. במקום זאת, להשתמש בהרשאות UICC באמצעות אפליקציית ספק נפרדת משלה.
מבוא להטמעה
אותות
ל-Android framework יש תמיכה בהגדרת פעולות באמצעות הפרמטרים הבאים אותות:
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;
הערה: אם ספק מטמיע אפליקציה עצמאית משלו, הם יכולים להטמיע תמיכה באותות אחרים בנוסף לאלה שמוזכרים כאן . הם גם יכולים להגדיר ולהגדיר את הפעולות שלהם.
מיפויים של אותות-פעולה כברירת מחדל
מגדירים את פעולות ברירת המחדל לפי התהליך הזה:
- להגדיר מפתח לאותות נתמכים.
המיפויים של האותות לפעולה שמוגדרים כברירת מחדל מוגדרים במדיניות
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";
- שיוך של פעולות ברירת המחדל למקשי האות.
מזהי הפעולות שמוגדרים כברירת מחדל משויכים למקשי האות:
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 לתכונה הזו.
השתמשו בבדיקות האימות הידניות הבאות כדי לאמת את התכונה:
- אימות ההתראה על אות של אות איזון במכשיר של חברת תקשורת.
- אימות ויסות נתונים (throttling) של הפניה אוטומטית של תעבורת נתונים בזמן Wi-Fi ומצב חוסר איזון מושבתת.
- בדיקה שהתנועה ברשת מושבתת וממשק המשתמש של ההתראות מופיע במהלך במצב של איזון.
- אימות השיחה הקולית/פונקציית VoLTE במצב של חוסר איזון.
- מוודאים ששיחות הווידאו חסומות במצב לא איזון.
- כשה-Wi-Fi פועל, מוודאים שהמשתמש יכול להמשיך לגלוש באינטרנט ובגלישה התנועה לא מפעילה את התנועה ברשת כאשר היא מאוזן .
- אימות פונקציות Wi-Fi, WFC ו-Bluetooth במצב של חוסר איזון .
- מכבים את חיבור ה-Wi-Fi. לאמת שממשק המשתמש של ההתראות לא מאוזן, תנועת הגלישה לא מופנית אל אתר הרישום של חברת תקשורת סלולרית. אימות לחיצה על הקישור בממשק ההתראות מפעילה את הדפדפן לאתר הרישום של Google.
- צריך לוודא שהחלפת מצב טיסה לא מאפסת את ויסות התנועה .
- מוודאים שהחלפת כרטיס SIM שכלול בשירות מאפסת את התנועה ברשת .
- איך מוודאים שהכנסה מחדש של כרטיס ה-SIM הלא איזון מפעילה מחדש את הפניה אוטומטית של תעבורת הנתונים ואז מקבל שוב ויסות נתונים (throttle) של תעבורת הנתונים ברשת.
- מוודאים שהפעלתם מחדש של הטלפון מפעילה מחדש את ההפניה האוטומטית ומחזירה את ויסות תנועה וממשק משתמש להתראות.
- מקישים על 'הפורטל שבוי' התראה. אימות רשת מוגבלת נוצר כדי לאפשר למשתמש להוסיף קרדיטים.
- יש לוודא שמילוי מחדש או הפעלה מחדש של יתרת כרטיס ה-SIM גורם לרשת סלולרית את התנועה לשחזור, ואת הקישור ל-Telco בלי התראה על יתרה לא נמצא.
- בדיקת שפיות לאחר שחזור שירות הנתונים.
אפליקציית ברירת המחדל מספקת כמה דוגמאות לבדיקות יחידה (unit testing) וסקריפט כדי להריץ אותן
(מידע נוסף זמין בכתובת tests/runtest.sh
). כשמטמיעים גרסה מותאמת אישית או
עליכם לשקף את ההתאמות האישיות האלה בבדיקות יחידה ייעודיות.