沒有行動數據餘額的 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;
注意:如果電信業者自行推出獨立應用程式, 他們可以導入其他信號的支援 專區。他們也可以定義及設定自己的動作。
預設信號動作對應
如要設定預設動作,請按照下列程序操作:
- 為支援的信號定義鍵。
動作對應的預設信號已在
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";
- 將預設動作與信號鍵建立關聯。
預設動作 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 測試。
請使用這些手動驗證測試來驗證功能:
- 驗證電信裝置的訊號偏差通知。
- 在非平衡狀態和 Wi-Fi 期間確認流量重新導向節流 關閉。
- 確認網路流量已關閉,並在出站時顯示通知使用者介面 就達到平衡狀態
- 在不平衡狀態時驗證語音通話/VoLTE 函式。
- 確認視訊通話在超出餘額的情況下遭到封鎖。
- 開啟 Wi-Fi 後,系統會驗證使用者是否能繼續瀏覽網頁及瀏覽網頁 流量不在平衡時不會開啟網路流量 時間。
- 離線期間確認 Wi-Fi、WFC 和藍牙功能 時間。
- 關閉 Wi-Fi。驗證餘額不平衡的通知 UI,以及這個一般情況 瀏覽流量並未重新導向至電信註冊網站。驗證 只要按一下通知使用者介面中的連結,瀏覽器就會前往電信公司 註冊網站。
- 確認切換飛航模式不會重設流量限制 時間。
- 確認替換服務中的 SIM 卡會重設網路流量 時間。
- 確認重新插入餘額不足的 SIM 卡會重新啟動流量重新導向 並再次對網路流量進行節流
- 確認重新啟動手機後,能否重新啟用重新導向,以及再次啟動 流量節流和通知 UI
- 輕觸「網頁認證入口」通知。驗證受限制的網路 已建立連結,讓使用者得以新增抵免額。
- 確認 SIM 卡餘額補充或重新啟用會導致行動網路 有待恢復的流量,以及 Telco 連結且沒有餘額通知 因為
- 資料服務復原後的例行性測試。
預設應用程式會提供幾個單元測試範例和執行指令碼的指令碼
(請參閱 tests/runtest.sh
)。實作自訂版本或
這些自訂項目應反映到專屬的單元測試中。