對於搭載 Android 12 以上版本的裝置,Android 支援 5G 網路切片功能,可使用網路虛擬化技術將單一網路連線劃分為多個不同的虛擬連線,為不同類型的流量提供不同數量的資源。5G 網路切片技術可讓網路營運商將部分網路專用於為特定客群提供特定功能。Android 12 推出下列 5G 企業網路切片功能,網路業者可提供給企業客戶:
全代管裝置的企業裝置切片
如果企業為員工提供全代管公司裝置,網路供應商可以提供一或多個有效的企業網路切片,將公司裝置上的流量導向這些切片。從 Android 12 開始,Android 允許電信業者透過 URSP 規則提供企業專用網路切片,不必透過 APN 設定網路切片。
為設有工作資料夾的裝置提供企業商務應用程式切片
如果企業使用工作資料夾解決方案,Android 12 可讓裝置將工作資料夾中所有應用程式的流量,導向企業網路切片。企業可透過裝置政策控制器 (DPC) 啟用這項功能。
工作資料夾解決方案提供企業所需的自動驗證和存取權控管層級,確保只有工作資料夾中的企業應用程式流量會路由至企業網路切片。工作資料夾中的應用程式不需要修改,即可明確要求企業網路切片。
AOSP 中的 5G 網路切片運作方式
Android 12 在 AOSP 的電話程式碼集和網路共用模組中新增內容,支援 5G 網路切片,並納入網路切片所需的現有連線能力 API。
Android 電話平台提供 HAL 和電話 API,可根據核心網路程式碼提出的網路要求,以及數據機中的 5G 切片功能,支援切片。圖 1 說明 5G 網路切片功能的元件。
圖 1. AOSP 中的 5G 網路切片架構。
電話和連線平台支援:
- 將切片類別的網路要求轉換為流量描述元,然後傳遞至數據機,以進行 URSP 流量比對和路徑選取
- 如果企業網路切片無法使用,則會改用預設網路
- 將工作資料夾中所有應用程式的流量,轉送至對應的連線
支援企業切片
- 偵測裝置上是否有工作資料夾
- 檢查企業 IT 管理員使用的 DPC 提供的權限或路徑指示
核心網路服務在 Android 12 中對網路共用模組進行了下列變更:
- 將大部分的
android.net.*公開或系統 API 類別新增至 Tethering 模組 擴大網路共用模組的範圍,納入:
f/b/core/java/android/net/…f/b/services/net/…f/b/services/core/java/com/android/server/connectivity/…f/b/services/core/java/com/android/server/ConnectivityService.javaf/b/services/core/java/com/android/server/TestNetworkService.java
將 VPN 程式碼移出「網路共用」模組
Android 12 會將具備下列功能的程式碼移至「網路共用」模組:
- 接收應用程式的網路連線要求
- 接收系統要求 (例如「將這些應用程式放在企業切片上」;Android 12 推出這項功能)
- 系統會將要求傳送至電話通訊程式碼,嘗試透過 HAL API 和數據機設定網路或切片
- 告知 netd 如何根據每個應用程式轉送流量 (Android 12 中導入)
- 透過
ConnectivityManagerAPI (例如NetworkCallback、getActiveNetwork、getNetworkCapabilities) 通知應用程式網路流量的狀況。
導入作業
如要在裝置上支援 5G 切片,裝置必須具備支援 IRadio 1.6 HAL 的數據機,該數據機具有 setupDataCall_1_6 API。這個 API 會設定資料連線,並包含下列參數,以支援 5G 切片:
trafficDescriptor:指定傳送至數據機的流量描述元sliceInfo:指定要在 EPDG 交接至 5G 時使用的網路切片資訊matchAllRuleAllowed:指定是否允許使用預設的「符合所有條件」URSP 規則。電話服務會將預設網路設為 true,但不會將切片設為 true。系統會將「符合所有條件」規則套用至預設網路。如果應用程式要求的特定版面配置無法使用,系統會回報該版面配置無法使用。如果是企業應用程式,如果企業網路無法使用,電話通訊架構可以改用預設網路。
除非 getHalDeviceCapabilities API 回報數據機不支援 getSlicingConfig API,否則數據機也必須實作該 API。
企業版需求條件
以下說明企業在 Android Enterprise 部署作業中,於裝置上使用 5G 網路切片功能時須符合的條件。
- 確認設有工作資料夾的全代管或員工裝置支援 5G SA,且數據機支援
setupDataCall_1_6API。 - 與電信業者合作夥伴共同設定切片和效能,或 SLA 特性。
在設有工作資料夾的裝置上啟用 5G 切片
如果是設有工作資料夾的裝置,AOSP 預設會關閉 5G 網路切片功能。如要啟用網路切片,企業 IT 管理員可以透過 EMM DPC,根據每位員工的設定,開啟或關閉工作資料夾應用程式流量的企業網路切片轉送功能。EMM DPC 會使用 DevicePolicyManager (DPM) API (Android 12 中推出) 的 setPreferentialNetworkServiceEnabled 方法。
如果 EMM 供應商使用自訂 DPC,就必須整合 DevicePolicyManager API,才能支援企業客戶。
URSP 規則
本節提供電信業者資訊,說明如何為不同切片類別 (包括企業、CBS、低延遲、高頻寬和統一通訊流量) 設定 URSP 規則。
設定 URSP 規則時,電信業者可根據下列因素使用流量描述元:
- OS ID 和 OS 應用程式 ID 類型、元件類型
0x08,支援 Android 12 以上版本 - 連線功能類型、元件類型
0x90,支援 Android 17 以上版本
OS ID 和 OS 應用程式 ID
使用 OS ID 和 OS 應用程式 ID 類型流量描述元元件設定 URSP 規則時,電信業者可以使用下列 Android 專屬的 OS ID 和 OS 應用程式 ID 值。
| ID | 值 | 說明 |
|---|---|---|
| OS ID | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
Android 的 OS ID 是以命名空間 ISO OID 和名稱 Android 產生的第 5 版 UUID。 |
如果電信業者使用 OS ID 和 OS 應用程式 ID 類型設定 URSP 規則,則必須將每個切片流量的流量描述元元件設定為 OS ID、OS 應用程式 ID 長度 (0x0A) 和 OS 應用程式 ID 的串連。舉例來說,ENTERPRISE 切片的值必須為 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345。如要進一步瞭解流量描述元元件類型,請參閱 3GPP TS 24.526 表格 5.2.1。
下表說明不同配量類別的 OSAppId 值。
| 區塊類別 | OSAppId | 說明 |
|---|---|---|
ENTERPRISE |
0x454E5445525052495345 |
OSAppId 是字串 ENTERPRISE 的位元組陣列表示法 |
ENTERPRISE2 |
0x454E544552505249534532 |
OSAppId 是字串 ENTERPRISE2 的位元組陣列表示法 |
ENTERPRISE3 |
0x454E544552505249534533 |
OSAppId 是字串 ENTERPRISE3 的位元組陣列表示法 |
ENTERPRISE4 |
0x454E544552505249534534 |
OSAppId 是字串 ENTERPRISE4 的位元組陣列表示法 |
ENTERPRISE5 |
0x454E544552505249534535 |
OSAppId 是字串 ENTERPRISE5 的位元組陣列表示法 |
CBS |
0x434253 |
OSAppId 是字串 CBS 的位元組陣列表示法 |
PRIORITIZE_LATENCY |
0x5052494f524954495a455f4c4154454e4359 |
OSAppId 是字串 PRIORITIZE_LATENCY 的位元組陣列表示法 |
PRIORITIZE_BANDWIDTH |
0x5052494f524954495a455f42414e445749445448 |
OSAppId 是字串 PRIORITIZE_BANDWIDTH 的位元組陣列表示法 |
PRIORITIZE_UNIFIED_COMMUNICATIONS |
0x5052494f524954495a455f554e49464945445f434f4d4d554e49434154494f4e53 |
OSAppId 是字串 PRIORITIZE_UNIFIED_COMMUNICATIONS 的位元組陣列表示法 |
我們沒有導入新 OSAppId 值的計畫。我們會視需要強化連線功能流量描述符。
連線功能
在 Android 17 以上版本 (Radio HAL AIDL 2.5 以上版本),Android 支援 3GPP TS 24.526 表 5.2.1 中定義的連線功能流量描述元元件 (類型 0x90)。
當應用程式或系統服務要求具備特定功能的網路時,Android 電話資料堆疊會將要求的 NetworkCapabilities 對應至資料通話設定 (setupDataCall) 期間傳送至數據機的 TrafficDescriptor 中填入的標準連線功能值。雖然 3GPP 規格允許單一描述元中的多個連線功能,但 Android 17 電話架構會將要求的多個連線功能對應至單一連線功能。
下表說明 Android 網路功能與 3GPP 連線功能的預設對應關係:
| 網路功能 | 連線功能 | 值 (十六進位或十進位) | 說明 |
|---|---|---|---|
NET_CAPABILITY_IMS |
CONNECTION_CAPABILITY_IMS |
0x01 (1) |
IP 多媒體子系統語音和視訊通訊 |
NET_CAPABILITY_MMS |
CONNECTION_CAPABILITY_MMS |
0x02 (2) |
多媒體訊息流量 |
NET_CAPABILITY_SUPL |
CONNECTION_CAPABILITY_SUPL |
0x04 (4) |
安全使用者平面位置 (SUPL) |
NET_CAPABILITY_INTERNET |
CONNECTION_CAPABILITY_INTERNET |
0x08 (8) |
預設網際網路資料流量 |
NET_CAPABILITY_PRIORITIZE_LATENCY |
CONNECTION_CAPABILITY_REAL_TIME_INTERACTIVE |
0xA6 (166) |
即時互動流量 (例如遊戲、AR/VR) |
NET_CAPABILITY_PRIORITIZE_BANDWIDTH |
CONNECTION_CAPABILITY_DOWNLINK_STREAMING |
0xA3 (163) |
下行高頻寬串流流量 |
NET_CAPABILITY_PRIORITIZE_UNIFIED_COMMUNICATIONS |
CONNECTION_CAPABILITY_UNIFIED_COMMUNICATIONS |
0xA7 (167) |
整合通訊 (例如 OTT 語音或視訊通話) |
電信業者 URSP 設定和回溯相容性
為確保不同 HAL 和 OS 版本的裝置都能順暢運作,電信業者在佈建 URSP 規則時,應考量下列行為:
- 搭載 Android 16 以下版本的裝置 (Radio HAL AIDL 2.4 以下版本):數據機至少會收到流量描述元中的
OSAppId。 - 搭載 Android 17 以上版本 (AIDL 2.5 以上版本) 的裝置:如需低延遲、高頻寬和統一通訊等進階 Slice 功能,平台會在流量描述元中填入
OSAppId、ConnectionCapability或兩者。
電信業者可以透過下列其中一種方式設定 URSP 規則:
- 以優先順序為準的規則 (建議):
- 規則 A (優先順序較高,優先順序編號較低,例如 10):根據連線功能比對 (例如
0xA6代表低延遲、0xA3代表高頻寬,或0xA7代表整合通訊)。Android 17 以上版本的裝置會優先套用這項規則。 - 規則 B (優先順序較低,優先順序編號較高,例如 20):比對 OS ID 和 OS 應用程式 ID 類型 (例如
PRIORITIZE_LATENCY)。不支援 HAL 中連線功能的舊裝置會比對這項備援規則。
- 規則 A (優先順序較高,優先順序編號較低,例如 10):根據連線功能比對 (例如
- 僅限 OS 應用程式 ID 的規則 (舊版):
- 電信業者可以繼續使用現有的 URSP 規則,這些規則以 OS ID 和 OS 應用程式 ID 類型為依據。由於 Android 17 以上版本的裝置會繼續傳遞
OSAppId,因此新舊裝置都能成功比對這些規則。
- 電信業者可以繼續使用現有的 URSP 規則,這些規則以 OS ID 和 OS 應用程式 ID 類型為依據。由於 Android 17 以上版本的裝置會繼續傳遞
- 合併規則 (AND 條件):
- 電信業者可以在單一流量描述元中,同時指定 OS ID、OS 應用程式 ID 和連線功能。這項規則只會比對搭載 Android 17 以上版本,且 AIDL 2.5 以上版本的裝置。
URSP 規則範例
下表顯示企業、CBS、低延遲、高頻寬、整合通訊和預設流量的 URSP 規則範例。
Enterprise 1
Android 12 以上版本支援 Enterprise 1。以下是 ENTERPRISE1 流量的 URSP 規則範例:
| URSP 規則 1 (ENTERPRISE1) | |
|---|---|
| 優先順序 | 1 (0x01) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | 企業 |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | 企業 |
Enterprise 2
Android 13 以上版本支援 Enterprise 2。以下是 ENTERPRISE2 流量的 URSP 規則範例:
| URSP 規則 2 (ENTERPRISE2) | |
|---|---|
| 優先順序 | 2 (0x02) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | enterprise2 |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | enterprise2 |
Enterprise 3
Android 13 以上版本支援 Enterprise 3。以下是 ENTERPRISE3 流量的 URSP 規則範例:
| URSP 規則 3 (ENTERPRISE3) | |
|---|---|
| 優先順序 | 3 (0x03) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | enterprise3 |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | enterprise3 |
Enterprise 4
Android 13 以上版本支援 Enterprise 4。以下是 ENTERPRISE4 流量的 URSP 規則範例:
| URSP 規則 4 (ENTERPRISE4) | |
|---|---|
| 優先順序 | 4 (0x04) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | enterprise4 |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | enterprise4 |
Enterprise 5
Android 13 以上版本支援 Enterprise 5。以下是 ENTERPRISE5 流量的 URSP 規則範例:
| URSP 規則 5 (ENTERPRISE5) | |
|---|---|
| 優先順序 | 5 (0x05) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | enterprise5 |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | enterprise5 |
CBS
Android 13 以上版本支援 CBS。以下是 CBS 流量的 URSP 規則範例:
| URSP 規則 6 (CBS) | |
|---|---|
| 優先順序 | 6 (0x06) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E4703434253 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | cbs |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | cbs |
具備連線功能,延遲時間短
Android 17 以上版本支援 URSP 規則中的連線功能。以下是使用連線功能描述元的低延遲流量 URSP 規則範例:
| URSP 規則 7 (低延遲,具連線功能) | |
|---|---|
| 優先順序 | 7 (0x07) |
| 流量描述元 #1 | |
| 連線功能類型 | 0xA6 (166:即時互動) |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | 延遲時間 |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | 延遲時間 |
使用 OSAppId 實現低延遲
Android 13 以上版本支援低延遲功能。以下是使用 OSAppId 的 LOW_LATENCY 流量 URSP 規則範例:
| URSP 規則 8 (低延遲,並以 OSAppId 做為備援) | |
|---|---|
| 優先順序 | 8 (0x08) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | 延遲時間 |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | 延遲時間 |
具備連線功能的高頻寬
Android 17 以上版本支援 URSP 規則中的連線功能。以下是使用連線功能描述元的 URSP 規則範例,適用於高頻寬流量:
| URSP 規則 9 (高頻寬,具連線功能) | |
|---|---|
| 優先順序 | 9 (0x09) |
| 流量描述元 #1 | |
| 連線功能類型 | 0xA3 (163:下行串流) |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | bandwidth |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | bandwidth |
高頻寬 (含 OSAppId)
Android 13 以上版本支援高頻寬。以下是使用 OSAppId 的 HIGH_BANDWIDTH 流量 URSP 規則範例:
| URSP 規則 10 (高頻寬,並回溯至 OSAppId) | |
|---|---|
| 優先順序 | 10 (0x0A) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
| 元件 #2:DNN | bandwidth |
| 路徑選取描述元 #2 | |
| 優先順序 | 2 (0x02) |
| 元件 1:DNN | bandwidth |
具備連線功能的整合通訊
Android 17 以上版本支援整合通訊。以下是使用連線功能的 UNIFIED_COMMUNICATIONS 流量 URSP 規則範例。由於整合通訊流量會透過預設網際網路資料連線傳輸,因此路徑選取描述元不需要專屬 APN (DNN):
| URSP 規則 11 (具連線功能的統一通訊) | |
|---|---|
| 優先順序 | 11 (0x0B) |
| 流量描述元 #1 | |
| 連線功能類型 | 0xA7 (167:整合通訊) |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
使用 OSAppId 進行整合通訊
Android 17 以上版本支援整合通訊。以下是使用 OSAppId 的 UNIFIED_COMMUNICATIONS 流量 URSP 規則範例:
| URSP 規則 12 (與 OSAppId 備援的整合通訊) | |
|---|---|
| 優先順序 | 12 (0x0C) |
| 流量描述元 #1 | |
| 作業系統 ID + 作業系統應用程式 ID 類型 | 0x97A498E3FC925C9489860333D06E4E47215052494F524954495A455F554E49464945445F434F4D4D554E49434154494F4E53 |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
預設
| URSP 規則 13 (預設) | |
|---|---|
| 優先順序 | 13 (0x0D) |
| 流量描述元 #1 | |
| match-all | N/A |
| 路線選擇描述元 #1 | |
| 優先順序 | 1 (0x01) |
| 元件 1:S-NSSAI | SST:XX SD:YYYYYY |
測試
如要測試 5G 網路切片,請使用下列手動測試。
如要設定測試裝置,請按照下列步驟操作:
確認 URSP 政策已設定非預設規則,且該規則符合企業類別,以及對應的路由選取描述元將企業類別對應至企業網路切片;此外,預設規則會將流量導向預設網際網路切片。
確認裝置上已設定工作資料夾。
透過 DPC 選擇使用網路切片
如要測試 5G 網路切片行為,請按照下列步驟操作:
- 確認已建立企業切片 PDU 工作階段 (例如使用特定 IP 位址),且工作資料夾中的應用程式使用該 PDU 工作階段。
- 確認已透過預設網際網路切片建立獨立的 PDU 工作階段,且個人資料夾中的應用程式使用該 PDU 工作階段。
5G 切片加購
Android 14 QPR1 以上版本提供 5G 網路切片加購功能,電信業者可透過 5G 網路切片,為使用者提供更強大的網路功能 (延遲和頻寬)。
5G 切片加購功能會使用電信業者授權伺服器的 TS.43 回應,引導使用者完成購買流程。電信業者可使用回應指定電信業者購買網頁檢視的網址、將額外資料傳送至網頁檢視,以及指出切片是否已佈建並可在電信業者網路上使用。
電信業者可以透過電信業者設定,自訂 5G 切片加購功能的行為,包括控制是否可提出購買要求、允許應用程式要求進階功能的時機,以及電話架構等待使用者或網路回應的時間長度。
5G 切片加購功能提供名為 DataBoostWebServiceFlow 的介面,可讓 Android 與電信業者 WebView 進行通訊。
圖 2 顯示 5G 切片加購流程:
圖 2. 5G 切片加購流程。
TS.43 授權程序
當使用者要求強化網路功能時,Telephony 架構會要求所要求進階功能的服務授權設定。如果 TS.43 回應有效,Telephony 架構會使用 HTTP 回應中的欄位來驅動購買要求。
切片購買欄位
TS.43 授權設定包含下列切片購買欄位:
- 權限狀態
鍵:
EntitlementStatus類型:
int支援的值:
0(已停用)、1(已啟用)、2(不相容)、3(佈建中)、4(已納入)- 佈建狀態
鍵:
ProvStatus類型:
int支援的值:
0(未佈建)、1(已佈建)、2(不適用)、3(進行中)
電話架構會結合授權狀態和佈建狀態,判斷目前的切片購買狀態。結果可以是下列其中一項:
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASEDPURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESSPURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILEDPURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR
如果授權狀態為 1 (已啟用),且佈建狀態為 0 (未佈建),電話架構會向使用者顯示加購通知,引導他們透過電信業者 WebView 購買加購內容。下表說明不同組合的佈建和授權狀態值,對 Telephony 架構的影響。
| 佈建狀態 | |||||
|---|---|---|---|---|---|
未佈建 (0) |
已佈建 (1) |
不適用 (2) |
處理中 (3) |
||
| 授權狀態 | 已停用 (0) |
失敗 | 失敗 | 失敗 | 失敗 |
已啟用 (1) |
顯示網頁畫面 | 已購買 | 已購買 | 進行中 | |
不相容 (2) |
失敗 | 失敗 | 失敗 | 失敗 | |
佈建 (3) |
貨運公司錯誤 | 貨運公司錯誤 | 進行中 | 進行中 | |
已納入 (4) |
貨運公司錯誤 | 已購買 | 已購買 | 貨運公司錯誤 | |
服務流程欄位
TS.43 回應會指定網址、使用者資料和內容類型,以便自訂電信業者購買網頁檢視行為。如果內容類型未指定,系統會以 GET 要求載入網址。如果使用者資料存在,系統會將其附加至網址做為查詢參數 (例如 https://www.android.com?encodedValue=Base64EncodedUserData);如果不存在,系統會照常使用網址 (例如 https://www.android.com)。
如果內容類型是以 JSON 或 XML 格式指定,系統會以 POST 要求載入網址,並將使用者資料 (如果以 Base 64 編碼,則會先解碼) 做為 POST 要求資料傳送。
- 網址
鍵:
ServiceFlow_URL類型:
String範例:
"https://www.android.com"- 使用者資料
鍵:
ServiceFlow_UserData類型:
String範例:
"encodedValue=Base64EncodedUserData"- 內容類型
鍵:
ServiceFlow_ContentsType類型:
String支援的值:
0(未指定)、1(JSON)、2(XML)
電信業者設定
以下是可用的電信業者設定,可自訂 5G 切片加購功能的行為。
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY支援的進階功能清單。這是 int 陣列,其中包含
TelephonyManager.PremiumCapability。 這些進階功能與對應的NetworkCapabilities.NetCapability類別具有相同價值。如果要求使用進階功能,但這項設定未包含該功能,購買要求就會失敗,並傳回CARRIER_DISABLED結果。在 Android 14 中,系統僅支援
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY。KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT每天向使用者顯示購買加購通知的次數上限。如果達到每日上限,系統就不會顯示加購通知,且會限制購買要求 (包括授權伺服器要求),直到次日午夜為止。如果購買要求是在達到每日上限後提出,系統會傳回
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED結果,表示要求失敗。KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT每月向使用者顯示購買加購通知的次數上限。如果達到每月上限,系統就不會顯示加購通知,且會限制購買要求 (包括授權伺服器要求),直到下個月的第一天為止。達到每月上限後提出的購買要求會失敗,並傳回
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED結果。KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING使用者點選加購通知時顯示的備用貨運公司購買網址。如果授權伺服器的 TS.43 回應中沒有購買網址,系統就會改用這個值。如果 TS.43 回應或電信業者設定中的網址無效,購買要求就會失敗,並傳回
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED結果。KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL是否允許裝置連上長期演進技術 (LTE) 時購買進階功能。如果
true,則可在 LTE 和 New Radio (NR) 上提出購買要求。如果false,只能在 NR 上提出購買要求,在 LTE 上提出的要求會失敗,並傳回PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE結果。KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG在系統自動取消前,向使用者顯示購買加購通知的時間長度。取消通知後,後續要求會受到節流,並因
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED而失敗。KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG因逾時或使用者取消而失敗後,後續購買要求應受到節流的時間長度。如果使用者未在
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG指定的逾時時間內點選購買加購通知,或是取消或關閉通知,系統就會啟動這個退避計時器。計時器運作時,購買要求會失敗,並傳回PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED結果。KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG因電信業者或網路問題導致交易失敗後,後續購買要求應受到節流的時間長度。如果授權檢查失敗、網址無法使用,或電信業者購買網址指出失敗,就會啟動這個退避計時器。計時器運作時,購買要求會失敗,並傳回
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED結果。KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG網路必須在多長時間內設定切片設定,才能購買進階功能。在這段期間,後續的購買要求會遭到封鎖,並傳回
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP結果。如果網路無法及時設定切片設定,應用程式可以再次要求購買進階功能。無論使用者是否已向電信業者付款,電話服務都會等到傳送相應的切片設定後,才將購買交易視為完成。
JavaScript 介面
使用者點選網路加速通知時,系統會向使用者顯示含有電信業者購買網址的 WebView 物件。電信業者可以在購買網站中使用 DataBoostWebServiceFlow JavaScript 介面提供的 API,與切片購買應用程式通訊。
電信業者網站可透過 getRequestedCapability() 方法取得要求的高階功能。
如果交易成功,電信業者網站必須透過 notifyPurchaseSuccessful() 或 notifyPurchaseSuccessful(duration) 通知切片購買應用程式,其中 duration 是選用參數,表示切片的預期時間長度。
如果購買交易未成功,電信業者網站必須透過 notifyPurchaseFailed(code, reason) 方法通知切片購買應用程式,其中 code 是指出失敗原因的失敗代碼,而 reason 則是失敗原因 (如果失敗代碼不明)。
如果未呼叫任一回應方法,系統不會將購買交易視為完成,且購買要求最終會逾時。
以下是貨運公司網站可針對購買失敗傳回的有效失敗代碼:
FAILURE_CODE_UNKNOWNFAILURE_CODE_CARRIER_URL_UNAVAILABLEFAILURE_CODE_AUTHENTICATION_FAILEDFAILURE_CODE_PAYMENT_FAILEDFAILURE_CODE_NO_USER_DATA
購買完成後,電信業者必須使用 PRIORITIZE_LATENCY 切片更新使用者裝置的URSP 規則。
自動將 OTT 語音和視訊通話連線至 5G 切片
Android 17 支援將 OTT 語音和視訊通話自動轉送至優質網路連線。這項功能可讓系統自動將語音和視訊通話的流量導向專屬的優質網路介面 (例如優質 5G 切片或優質 4G PDN 連線),不必變更應用程式的網路堆疊。
這項平台層級的解決方案可讓應用程式開發人員不必明確要求網路功能,為開發人員和使用者提供流暢體驗。
運作方式
Android 透過新增連線和電信架構,支援自動路徑設定。自動轉送功能的運作方式如下:
- 通話偵測:系統會運用 OTT 應用程式使用的現有 Telecom Jetpack API,偵測語音或視訊通話的開始和結束時間。
- 連線管理:Android 偵測到通話後,會顯示指定的優質網路介面,例如統一通訊切片。
- 流量導向:通話期間,平台會依據 UID 識別應用程式,並自動將流量導向優質網路連線。
- 通話後備援:通話結束後,平台會移除路由規則,應用程式的流量會返回系統預設網路,以處理非通話流量 (例如訊息)。
需求條件
如要支援 OTT 通話的自動轉送功能,必須符合下列條件:
- 電信業者:必須設定適當的 URSP 規則 (使用連線功能或 OSAppId 處理統一通訊流量),提供統一通訊切片。
- 應用程式:必須使用 Android Telecom Jetpack API,讓系統偵測通話狀態。
- 裝置製造商:必須搭載 Android 17 以上版本。