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

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

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

برای پیکربندی طرح‌های داده، اپراتورها می‌توانند با استفاده از 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()));

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

  • سیم کارت به صراحت برنامه‌ای را تعریف کرده است که می‌تواند آن را مدیریت کند، همانطور که توسط SubscriptionManager.canManageSubscription() تعریف شده است.
  • این اپراتور از طریق CarrierConfigManager مقدار KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING را وارد کرده است تا نشان دهد کدام برنامه می‌تواند طرح‌های داده اپراتور را مدیریت کند.
  • این دستگاه دارای یک برنامه‌ی داخلی در تصویر سیستم است که مجوز MANAGE_SUBSCRIPTION_PLANS را دارد.

دو شرط اول، امکان نصب برنامه اپراتور توسط کاربر را فراهم می‌کنند، بدون اینکه نیازی به نصب اولیه آن در ایمیج سیستم در کارخانه باشد. سیستم‌عامل (و CDD) الزام می‌کند که تمام جزئیات طرح داده پیکربندی‌شده محافظت شده و فقط در دسترس برنامه اپراتوری قرار گیرد که در ابتدا جزئیات را به سیستم‌عامل ارائه داده است.

یک طرح پیشنهادی این است که یک برنامه اپراتور از یک سرویس نگهداری غیرفعال برای به‌روزرسانی روزانه جزئیات طرح داده استفاده کند، اما اپراتورها می‌توانند از طیف گسترده‌ای از مکانیسم‌ها، مانند دریافت جزئیات طرح داده از طریق پیام‌های کوتاه داخلی اپراتور، استفاده کنند. سرویس‌های نگهداری غیرفعال به بهترین شکل با یک JobScheduler که از setRequiresDeviceIdle() و setRequiresCharging() استفاده می‌کند، پیاده‌سازی می‌شوند.

میزان استفاده بر اساس سیستم عامل

سیستم عامل از جزئیات طرح داده ارائه شده توسط APIهای SubscriptionPlan به روش‌های زیر استفاده می‌کند:

  • جزئیات طرح از طریق برنامه تنظیمات نمایش داده می‌شود تا میزان دقیق مصرف داده را به کاربران نشان دهد و لینک‌های مستقیم به برنامه اپراتور برای فرصت‌های ارتقا/افزایش قیمت ارائه دهد.
  • هشدار مصرف داده و آستانه‌های اعلان محدودیت، به‌طور خودکار بر اساس جزئیات طرح پیکربندی می‌شوند؛ هشدار روی ۹۰٪ از حد مجاز تنظیم می‌شود.
  • اگر اپراتور موقتاً اعلام کند که شبکه «تراکم» دارد، سیستم‌عامل، وظایف زمان‌بندی‌شده‌ی JobScheduler را که می‌توانند زمان‌بندی شوند، به تأخیر می‌اندازد و بار روی شبکه‌ی اپراتور را کاهش می‌دهد.
  • اگر اپراتور موقتاً اعلام کند که شبکه «بدون محدودیت حجمی» است، سیستم عامل می‌تواند اتصال سلولی را تا زمانی که اپراتور لغو محدودیت حجمی را لغو کند یا تا زمانی که به مقدار زمان انقضا (در صورت وجود) برسد، به عنوان «بدون محدودیت حجمی» گزارش کند.
  • با مقایسه میزان مصرف فعلی کاربر با محدودیت کلی داده، سیستم عامل میزان مصرف عادی کاربر را در پایان چرخه صورتحساب تخمین می‌زند و به طور محافظه‌کارانه‌ای 10٪ از هرگونه داده مازاد را برای بهبود تجربه کاربر اختصاص می‌دهد، به عنوان مثال، با اجازه دادن به برنامه‌ها برای استفاده از داده‌های چند مسیری.

سفارشی‌سازی و اعتبارسنجی

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

APIهای SubscriptionManager که در این صفحه توضیح داده شده‌اند، توسط android.telephony.cts.SubscriptionManagerTest آزمایش می‌شوند، که تضمین می‌کند جزئیات طرح داده توسط برنامه‌های اپراتور قابل پیکربندی باشند و تغییرات در داخل سیستم عامل منتشر شوند.