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