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