Android 9 به شرکتهای مخابراتی اجازه میدهد تا به طور مستقیم جزئیات طرح معتبر را در برنامه تنظیمات به کاربران ارائه دهند تا سردرگمی کاربر را کاهش داده و از تماسها پشتیبانی کند. در دستگاههای دارای Android نسخه 4.0 و بالاتر، کاربران میتوانند به صورت دستی جزئیات طرح داده خاص شرکت مخابراتی خود را در برنامه تنظیمات پیکربندی کنند، برای مثال، هشدارها و محدودیتهایی را برای مدیریت مصرف داده خود تنظیم کنند.
پیکربندی توسط حامل
To configure data plans, carriers can add functionality to their existing Android apps using the SubscriptionPlan
APIs . 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()));
دستگاه فقط به برنامه اجازه میدهد برنامههای داده را تحت یکی از این شرایط پیکربندی کند:
- The SIM card has explicitly defined an app that can manage it, as defined by
SubscriptionManager.canManageSubscription()
. - The carrier has pushed the
KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING
value viaCarrierConfigManager
to indicate which app can manage the carrier's data plans. - دستگاه دارای یک برنامه در تصویر سیستم است که دارای مجوز
MANAGE_SUBSCRIPTION_PLANS
است.
دو شرط اول، برنامه حامل را قادر میسازد که توسط کاربر نصب شود، بدون نیاز به نصب از قبل در تصویر سیستم در کارخانه. سیستم عامل الزام می کند (و CDD ایجاب می کند) که همه جزئیات طرح داده های پیکربندی شده محافظت می شوند و فقط برای برنامه حاملی که در ابتدا جزئیات را در اختیار سیستم عامل قرار داده است در دسترس قرار می گیرند.
یکی از طرحهای پیشنهادی این است که یک برنامه حامل از یک سرویس نگهداری غیرفعال برای بهروزرسانی جزئیات طرح داده به صورت روزانه استفاده کند، اما شرکتهای مخابراتی در استفاده از طیف وسیعی از مکانیسمها آزادند، مانند دریافت جزئیات طرح داده از طریق پیامهای SMS داخلی شرکت مخابراتی. خدمات نگهداری بیحرکت به بهترین وجه با یک کار JobScheduler
که از setRequiresDeviceIdle()
و setRequiresCharging()
استفاده میکند، پیادهسازی میشوند.
استفاده توسط سیستم عامل
سیستم عامل از جزئیات طرح داده ارائه شده توسط SubscriptionPlan API به روش های زیر استفاده می کند:
- جزئیات طرح از طریق برنامه تنظیمات نمایش داده میشود تا میزان استفاده دقیق از داده را برای کاربران نمایش دهد و پیوندهای عمیق مستقیمی را به برنامه حامل برای فرصتهای ارتقا/فروش بالا ارائه دهد.
- هشدار مصرف داده و آستانه اعلان محدودیت به طور خودکار بر اساس جزئیات طرح پیکربندی می شوند. اخطار روی 90 درصد حد تعیین شده است.
- If the carrier temporarily indicates the network is "congested" , the OS delays JobScheduler jobs that can be time-shifted, reducing the load on the carrier network.
- If the carrier temporarily indicates the network is "unmetered" , the OS can report the cellular connection as "unmetered" until the carrier clears the override, or until the timeout value (if provided) is reached.
- با مقایسه میزان مصرف کنونی کاربر با محدودیت کلی داده، سیستم عامل مصرف عادی داده کاربر را در پایان چرخه صورتحساب تخمین میزند و به طور محافظهکارانه 10 درصد از دادههای مازاد را برای بهبود تجربه کاربر اختصاص میدهد، برای مثال، با اجازه دادن به برنامهها برای استفاده. داده های چند مسیری
سفارشی سازی و اعتبار سنجی
برنامه تنظیمات Android تمام جزئیات طرح داده پیکربندی شده توسط شرکت مخابراتی را نمایش میدهد و اطمینان میدهد که کاربران دقیقترین وضعیت ارتباط شرکت مخابراتی خود را میبینند و به کاربران مسیری را برای ورود به برنامه شرکت مخابراتی پیشنهاد میکند تا طرح خود را ارتقا دهند. به سازندگان دستگاههایی که برنامه تنظیمات را سفارشی میکنند، توصیه میشود به بررسی این جزئیات ادامه دهند.
APIهای SubscriptionManager
که در این صفحه توضیح داده شده اند توسط android.telephony.cts.SubscriptionManagerTest
آزمایش می شوند، که تضمین می کند جزئیات طرح داده را می توان توسط برنامه های حامل پیکربندی کرد و تغییرات در سیستم عامل منتشر می شود.