הטמעה של תוכניות נתונים

ב-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 ב בדרכים הבאות:

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

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

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

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