اجرای طرح های داده

Android 9 به شرکت‌های مخابراتی اجازه می‌دهد تا به طور مستقیم جزئیات طرح معتبر را در برنامه تنظیمات به کاربران ارائه دهند تا سردرگمی کاربر را کاهش داده و از تماس‌ها پشتیبانی کند. در دستگاه‌های دارای Android نسخه 4.0 و بالاتر، کاربران می‌توانند به صورت دستی جزئیات طرح داده خاص شرکت مخابراتی خود را در برنامه تنظیمات پیکربندی کنند، برای مثال، هشدارها و محدودیت‌هایی را برای مدیریت مصرف داده خود تنظیم کنند.

پیکربندی توسط حامل

برای پیکربندی طرح‌های داده، شرکت‌های مخابراتی می‌توانند با استفاده از APIهای SubscriptionPlan عملکردی را به برنامه‌های Android موجود خود اضافه کنند. 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()));

دستگاه فقط به برنامه اجازه می‌دهد برنامه‌های داده را تحت یکی از این شرایط پیکربندی کند:

  • سیم کارت به صراحت برنامه ای را تعریف کرده است که می تواند آن را مدیریت کند، همانطور که توسط 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 آزمایش می‌شوند، که تضمین می‌کند جزئیات طرح داده را می‌توان توسط برنامه‌های حامل پیکربندی کرد و تغییرات در سیستم‌عامل منتشر می‌شوند.