針對餘額不足的使用者自訂裝置行為

沒有行動數據餘額的 Android 裝置會導致網路流量通過, 電信業者和電信服務商,以便實作緩解協定Android 會實作 通用解決方案,可讓電信業者和電信公司指出裝置 表示用完餘額。

Android 平台提供預設的電信業者應用程式,做為 根據網頁認證入口偵測信號來緩解流量。另外,這項產品也提供 電信業者和原始設備製造商 非常靈活。

範例和來源

預設的電信業者應用程式位於 platform/frameworks/base/packages/CarrierDefaultApp/.

實作

預設的電信業者應用程式為 立即可用的電信業者。電信業者可以使用這項預設行為。 他們也可以新增信號動作對應,以覆寫預設行為: 電信業者設定 XML 檔案他們可以決定不使用預設應用程式, 而是在獨立的電信業者應用程式中使用 UICC 權限。

導入作業簡介

訊號

Android 架構支援設定以下參數化的動作 信號:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

這些信號位於 frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java

支援的動作

預設的電信業者應用程式會定義一組支援的動作,這些動作可以對應至 支援的信號。定義於 CarrierActionUtils.java

    public static final int CARRIER_ACTION_ENABLE_METERED_APNS               = 0;
    public static final int CARRIER_ACTION_DISABLE_METERED_APNS              = 1;
    public static final int CARRIER_ACTION_DISABLE_RADIO                     = 2;
    public static final int CARRIER_ACTION_ENABLE_RADIO                      = 3;
    public static final int CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION          = 4;
    public static final int CARRIER_ACTION_SHOW_NO_DATA_SERVICE_NOTIFICATION = 5;
    public static final int CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS          = 6;

注意:如果電信業者自行推出獨立應用程式, 他們可以導入其他信號的支援 專區。他們也可以定義及設定自己的動作。

預設信號動作對應

如要設定預設動作,請按照下列程序操作:

  1. 為支援的信號定義鍵。

    動作對應的預設信號已在 CarrierConfigManager.java 中定義。 每個支援的信號都有一個鍵:

    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array";
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY =
    "carrier_default_actions_on_dcfailure_string_array";
  2. 將預設動作與信號鍵建立關聯。

    預設動作 ID 與信號鍵相關聯:

    sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY,                new String[]{
                    "1, 4"
                    //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION
                    // 4: CARRIER_ACTION_DISABLE_METERED_APNS
             });
    

    電話架構會將這些動作對應到對應的信號。

覆寫預設動作

你可以在電信業者設定 XML 中,為支援的信號定義自訂動作 將動作 ID 與信號鍵建立關聯 (在 CarrierConfigManager.java)。以下列對應項目為例, 停用計量付費 APN,並在重新導向時顯示入口網站通知:

<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
            <item value="1" />
            <item value="4" />
</string-array>

電話架構會載入這些設定並覆寫預設值 動作。

驗證

這項功能沒有任何 CTS、CTS Verifier 或 GTS 測試。

請使用這些手動驗證測試來驗證功能:

  1. 驗證電信裝置的訊號偏差通知。
  2. 在非平衡狀態和 Wi-Fi 期間確認流量重新導向節流 關閉。
  3. 確認網路流量已關閉,並在出站時顯示通知使用者介面 就達到平衡狀態
  4. 在不平衡狀態時驗證語音通話/VoLTE 函式。
  5. 確認視訊通話在超出餘額的情況下遭到封鎖。
  6. 開啟 Wi-Fi 後,系統會驗證使用者是否能繼續瀏覽網頁及瀏覽網頁 流量不在平衡時不會開啟網路流量 時間。
  7. 離線期間確認 Wi-Fi、WFC 和藍牙功能 時間。
  8. 關閉 Wi-Fi。驗證餘額不平衡的通知 UI,以及這個一般情況 瀏覽流量並未重新導向至電信註冊網站。驗證 只要按一下通知使用者介面中的連結,瀏覽器就會前往電信公司 註冊網站。
  9. 確認切換飛航模式不會重設流量限制 時間。
  10. 確認替換服務中的 SIM 卡會重設網路流量 時間。
  11. 確認重新插入餘額不足的 SIM 卡會重新啟動流量重新導向 並再次對網路流量進行節流
  12. 確認重新啟動手機後,能否重新啟用重新導向,以及再次啟動 流量節流和通知 UI
  13. 輕觸「網頁認證入口」通知。驗證受限制的網路 已建立連結,讓使用者得以新增抵免額。
  14. 確認 SIM 卡餘額補充或重新啟用會導致行動網路 有待恢復的流量,以及 Telco 連結且沒有餘額通知 因為
  15. 資料服務復原後的例行性測試。

預設應用程式會提供幾個單元測試範例和執行指令碼的指令碼 (請參閱 tests/runtest.sh)。實作自訂版本或 這些自訂項目應反映到專屬的單元測試中。