הטמעת חבילות גלישה

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

הגדרה על ידי הספק

כדי להגדיר תוכניות נתונים, ספקי סלולר יכולים להוסיף פונקציונליות לאפליקציות Android הקיימות שלהם באמצעות ממשקי ה-API של SubscriptionPlan. ממשקי ה-API מיועדים לתמוך במגוון רחב של סוגי חבילות גלישה, כולל תוכניות חוזרות וחד-פעמיות, ותוכניות שמשתנות לאורך זמן.

דוגמה להגדרת חבילת גלישה נפוצה שחוזרת על עצמה מדי חודש:

SubscriptionManager sm =
    context.getSystemService(SubscriptionManager.class);
sm.setSubscriptionPlans(subId, Lists.newArrayList(
    SubscriptionPlan.Builder.createRecurringMonthly(
            ZonedDateTime.parse("2016-12-03T10:00:00Z"))
        .setTitle("G-Mobile")
        .setDataLimit(4_000_000_000L,
            SubscriptionPlan.LIMIT_BEHAVIOR_BILLED)
        .setDataUsage(200_493_293L, dataUsageTimestamp)
        .build()));

המכשיר מאפשר לאפליקציה להגדיר תוכניות נתונים רק אם מתקיים אחד מהתנאים הבאים:

  • בכרטיס ה-SIM הוגדרה במפורש אפליקציה שיכולה לנהל אותו, כפי שמוגדר ב-SubscriptionManager.canManageSubscription().
  • הספק העביר את הערך KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING באמצעות CarrierConfigManager כדי לציין איזו אפליקציה יכולה לנהל את חבילות הגלישה של הספק.
  • במכשיר יש אפליקציה שמוטמעת בקובץ אימג' של המערכת עם ההרשאה MANAGE_SUBSCRIPTION_PLANS.

שני התנאים הראשונים מאפשרים למשתמש להתקין את אפליקציית הספק, בלי שהיא תותקן מראש בקובץ אימג' של המערכת במפעל. מערכת ההפעלה אוכפת (וה-CDD מחייב) שכל הפרטים של תוכנית הנתונים שהוגדרה יהיו מוגנים ויהיו זמינים רק לאפליקציית הספק שסיפקה את הפרטים למערכת ההפעלה.

אחת מההצעות לעיצוב היא שאפליקציית ספק תשתמש בשירות תחזוקה במצב המתנה כדי לעדכן את פרטי חבילת הגלישה על בסיס יומי, אבל הספקים יכולים להשתמש במגוון רחב של מנגנונים, כמו קבלת פרטי חבילת הגלישה באמצעות הודעות SMS פנימיות של הספק. הדרך הכי טובה להטמיע שירותי תחזוקה בזמן שהמערכת לא פעילה היא באמצעות משימת JobScheduler שמשתמשת ב-setRequiresDeviceIdle() וב-setRequiresCharging().

שימוש לפי מערכת הפעלה

מערכת ההפעלה משתמשת בפרטי חבילת הגלישה שסופקו על ידי ממשקי SubscriptionPlan API בדרכים הבאות:

  • פרטי התוכנית מוצגים דרך אפליקציית ההגדרות כדי להציג למשתמשים נתונים מדויקים על השימוש, וכדי לספק קישורי עומק ישירים לאפליקציה של הספק להזדמנויות לשדרוג או למכירה של מוצרים נוספים.
  • הסף לאזהרה ולהתראת המגבלה לגבי שימוש בחבילת הגלישה מוגדר אוטומטית על סמך פרטי התוכנית. האזהרה מוגדרת ל-90% מהמגבלה.
  • אם הספק מציין באופן זמני שהרשת עמוסה, מערכת ההפעלה מעכבת את המשימות של JobScheduler שאפשר להזיז את הזמן שלהן, וכך מפחיתה את העומס על הרשת של הספק.
  • אם ספק הסלולר מציין באופן זמני שהרשת היא "שימוש חופשי", מערכת ההפעלה יכולה לדווח על חיבור לרשת סלולרית כ "שימוש חופשי" עד שהספק יבטל את שינוי מברירת המחדל, או עד שיגיע ערך הזמן הקצוב לתפוגה (אם הוא סופק).
  • המערכת משווה בין שימוש בחבילת הגלישה הנוכחי של המשתמש לבין מגבלת הנתונים הכוללת, ומעריכה את השימוש הרגיל בחבילת הגלישה של המשתמש בסוף מחזור החיוב. כדי לשפר את חוויית המשתמש, למשל לאפשר לאפליקציות להשתמש בנתונים מנתיבים מרובים, המערכת מקצה באופן שמרני 10% מכל עודף נתונים.

התאמה אישית ואימות

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

ממשקי ה-API של SubscriptionManager שמתוארים בדף הזה נבדקים על ידי android.telephony.cts.SubscriptionManagerTest, כדי לוודא שאפשר להגדיר את פרטי תוכנית הנתונים באמצעות אפליקציות של ספקי סלולר, ושהשינויים מועברים בתוך מערכת ההפעלה.