導入數據方案

Android 9 可讓電信業者直接在「設定」應用程式中向使用者提供官方方案詳細資料,以減少使用者混淆和支援電話。在搭載 Android 4.0 以上版本的裝置上,使用者可以在「設定」應用程式中手動設定特定電信業者的數據方案詳細資料,例如設定警告和限制來管理數據用量。

依電信業者設定

如要設定數據方案,電信業者可以使用 SubscriptionPlan API,為現有的 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()));

裝置只有在符合下列任一條件時,才能設定數據方案:

前兩個條件可讓使用者安裝電信業者應用程式,而不需要在工廠預先安裝到系統映像檔。作業系統會強制執行 (並且 CDD 要求) 保護所有已設定的資料方案詳細資料,並且僅提供給最初向作業系統提供詳細資料的電信業者應用程式。

建議的設計之一是,電信業者應用程式可使用閒置維護服務,每天更新數據方案詳細資料,但電信業者可自由使用各種機制,例如透過電信業者內部簡訊接收數據方案詳細資料。最適合透過使用 setRequiresDeviceIdle()setRequiresCharging()JobScheduler 工作實作閒置維護服務。

各 OS 的用量

OS 會透過下列方式使用 SubscriptionPlan API 提供的數據方案詳細資料:

  • 我們會透過「設定」應用程式顯示方案詳細資料,向使用者顯示準確的資料用量,並提供直接連結至電信業者應用程式的深層連結,提供升級/加購機會。
  • 系統會根據方案詳細資料自動設定數據用量警告和限制通知門檻,警告值設為限制的 90%。
  • 如果電信業者暫時指出網路處於「壅塞」狀態,OS 會延遲可進行時間轉移的 JobScheduler 工作,進而降低電信業者網路的負載。
  • 如果電信業者暫時指出網路為「不計量」,作業系統會將行動網路連線回報為「不計量」,直到電信業者清除覆寫值,或達到逾時值 (如有提供) 為止。
  • 透過比較使用者目前的資料用量與整體資料限制,OS 會預估使用者在結帳週期結束時的正常資料用量,並保守地分配任何多餘資料的 10%,以改善使用者體驗,例如讓應用程式使用多路徑資料。

自訂和驗證

Android 設定應用程式會顯示所有電信業者設定的數據方案詳細資料,確保使用者能看到最準確的電信業者關係狀態,並提供使用者前往電信業者應用程式升級方案的途徑。建議選擇自訂「設定」應用程式的裝置製造商繼續顯示這些詳細資料。

本頁說明的 SubscriptionManager API 會由 android.telephony.cts.SubscriptionManagerTest 測試,確保電信業者應用程式可以設定數據方案詳細資料,且相關變更會在 OS 中全面生效。