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

ב-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().

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

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

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

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

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

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