Đối với các thiết bị chạy Android 12 trở lên, Android hỗ trợ tính năng phân chia mạng 5G, sử dụng tính năng ảo hoá mạng để chia các kết nối mạng đơn lẻ thành nhiều kết nối ảo riêng biệt, cung cấp nhiều tài nguyên cho nhiều loại lưu lượng truy cập. Tính năng phân chia mạng 5G cho phép nhà khai thác mạng dành riêng một phần mạng để cung cấp các tính năng cụ thể cho một phân khúc khách hàng cụ thể. Android 12 giới thiệu các khả năng phân chia mạng 5G sau đây cho doanh nghiệp mà nhà khai thác mạng có thể cung cấp cho khách hàng doanh nghiệp của họ:
Phân vùng thiết bị doanh nghiệp cho thiết bị được quản lý hoàn toàn
Đối với những doanh nghiệp cung cấp thiết bị công ty được quản lý hoàn toàn cho nhân viên, các nhà cung cấp mạng có thể cung cấp cho họ một hoặc nhiều lát mạng doanh nghiệp đang hoạt động, nơi lưu lượng truy cập trên các thiết bị công ty được định tuyến đến. Từ Android 12, Android cho phép nhà mạng cung cấp các lát doanh nghiệp thông qua các quy tắc URSP, thay vì thiết lập các lát thông qua APN.
Phân chia ứng dụng doanh nghiệp cho các thiết bị có hồ sơ công việc
Đối với những doanh nghiệp sử dụng giải pháp hồ sơ công việc, Android 12 cho phép các thiết bị định tuyến lưu lượng truy cập từ tất cả ứng dụng trong hồ sơ công việc đến một lát mạng doanh nghiệp. Các doanh nghiệp có thể bật tính năng này thông qua Bộ điều khiển chính sách thiết bị (DPC).
Giải pháp hồ sơ công việc cung cấp một mức độ xác thực và kiểm soát quyền truy cập tự động mà các doanh nghiệp cần để đảm bảo rằng chỉ lưu lượng truy cập từ các ứng dụng doanh nghiệp trong hồ sơ công việc được định tuyến đến phân đoạn mạng doanh nghiệp. Bạn không cần sửa đổi các ứng dụng trong hồ sơ công việc để yêu cầu rõ ràng về lát mạng doanh nghiệp.
Cách phân chia mạng 5G hoạt động trong AOSP
Android 12 hỗ trợ phân chia mạng 5G thông qua việc bổ sung vào cơ sở mã điện thoại trong AOSP và mô-đun Chia sẻ Internet để kết hợp các API kết nối hiện có cần thiết cho việc phân chia mạng.
Nền tảng điện thoại Android cung cấp HAL và các API điện thoại để hỗ trợ việc phân đoạn dựa trên các yêu cầu mạng do mã mạng lõi và các chức năng phân đoạn 5G trong modem gửi. Hình 1 mô tả các thành phần của tính năng phân chia mạng 5G.
Hình 1. Cấu trúc phân chia mạng 5G trong AOSP.
Nền tảng điện thoại và kết nối hỗ trợ:
- Chuyển đổi các yêu cầu mạng cho danh mục lát thành trình mô tả lưu lượng truy cập, sau đó được truyền đến modem để so khớp lưu lượng truy cập URSP và chọn tuyến đường
- Quay lại mạng mặc định nếu không có phân đoạn mạng doanh nghiệp
- Định tuyến lưu lượng truy cập từ tất cả các ứng dụng trong hồ sơ công việc đến kết nối tương ứng
Hỗ trợ phân chia doanh nghiệp
- Phát hiện sự hiện diện của hồ sơ công việc trên thiết bị
- Kiểm tra các quyền hoặc chỉ đường được cung cấp từ DPC mà quản trị viên CNTT của doanh nghiệp sử dụng
Dịch vụ mạng cốt lõi bao gồm những thay đổi sau đối với mô-đun Chia sẻ Internet trong Android 12:
- Thêm hầu hết các lớp API công khai hoặc API hệ thống
android.net.*
vào mô-đun Chia sẻ Internet Mở rộng ranh giới của mô-đun Chia sẻ Internet để bao gồm:
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.java
f/b/services/core/java/com/android/server/TestNetworkService.java
Di chuyển mã VPN ra khỏi mô-đun Chia sẻ Internet
Android 12 di chuyển mã có các chức năng sau sang mô-đun Chia sẻ Internet:
- Nhận yêu cầu kết nối mạng từ các ứng dụng
- Nhận yêu cầu từ hệ thống (ví dụ: "đặt các ứng dụng này vào một lát cắt doanh nghiệp"; được giới thiệu trong Android 12)
- Gửi yêu cầu từ hệ thống đến mã điện thoại. Mã này sẽ cố gắng thiết lập các mạng hoặc phân đoạn bằng cách thông qua API HAL và modem
- Thông báo cho netd cách định tuyến lưu lượng truy cập trên cơ sở mỗi ứng dụng (ra mắt trong Android 12)
- Thông báo cho các ứng dụng về những gì đang xảy ra với lưu lượng truy cập mạng của chúng thông qua các API
ConnectivityManager
nhưNetworkCallback
,getActiveNetwork
,getNetworkCapabilities
.
Triển khai
Để hỗ trợ phân chia 5G trên một thiết bị, thiết bị đó phải có một modem hỗ trợ IRadio 1.6 HAL có API setupDataCall_1_6
. API này thiết lập một kết nối dữ liệu và bao gồm các tham số sau để hỗ trợ phân chia 5G:
trafficDescriptor
: Chỉ định bộ mô tả lưu lượng truy cập được gửi đến modemsliceInfo
: Chỉ định thông tin về lát mạng sẽ được dùng trong trường hợp chuyển giao EPDG sang 5GmatchAllRuleAllowed
: Chỉ định xem có được phép sử dụng quy tắc URSP khớp với tất cả mặc định hay không. Dịch vụ Điện thoại đặt giá trị này thành true cho các mạng mặc định nhưng không đặt cho các lát cắt. Quy tắc khớp tất cả được áp dụng cho các mạng mặc định. Khi một ứng dụng yêu cầu một lát cắt cụ thể không có sẵn, lát cắt cụ thể đó sẽ được báo cáo là không có sẵn. Đối với các ứng dụng doanh nghiệp, khung Telephony có thể quay lại mạng mặc định nếu mạng doanh nghiệp không hoạt động.
Các modem cũng phải triển khai API getSlicingConfig
, trừ phi API getHalDeviceCapabilities
báo cáo rằng API này không được hỗ trợ.
Yêu cầu đối với doanh nghiệp
Sau đây là nội dung mô tả các yêu cầu để doanh nghiệp sử dụng tính năng phân chia mạng 5G trên các thiết bị trong quá trình triển khai Android Enterprise.
- Đảm bảo rằng các thiết bị do nhân viên sở hữu hoặc được quản lý hoàn toàn được thiết lập bằng hồ sơ công việc có khả năng hỗ trợ 5G SA với modem hỗ trợ API
setupDataCall_1_6
. - Làm việc với đối tác hãng vận chuyển về chế độ thiết lập và hiệu suất của phân đoạn hoặc các đặc điểm SLA.
Bật tính năng phân đoạn 5G trên các thiết bị được thiết lập bằng hồ sơ công việc
Đối với các thiết bị được thiết lập bằng hồ sơ công việc, tính năng phân chia mạng 5G sẽ tắt theo mặc định trong AOSP. Để bật tính năng phân chia mạng, quản trị viên CNTT của doanh nghiệp có thể bật hoặc tắt tính năng định tuyến lưu lượng truy cập ứng dụng hồ sơ công việc đến phân chia mạng doanh nghiệp theo từng nhân viên thông qua DPC của EMM. DPC này sử dụng phương thức setPreferentialNetworkServiceEnabled
trong API DevicePolicyManager
(DPM) (ra mắt trong Android 12).
Các nhà cung cấp EMM có DPC tuỳ chỉnh phải tích hợp API DevicePolicyManager
để hỗ trợ khách hàng doanh nghiệp.
Quy tắc URSP
Phần này bao gồm thông tin dành cho nhà mạng về cách định cấu hình các quy tắc URSP cho nhiều danh mục lát cắt, bao gồm lưu lượng truy cập doanh nghiệp, CBS, độ trễ thấp và băng thông cao. Khi định cấu hình các quy tắc URSP cho nhiều danh mục lát cắt, các nhà mạng phải sử dụng các giá trị dành riêng cho Android sau đây.
ID | Giá trị | Mô tả |
---|---|---|
OSId | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
OSId cho Android là một UUID phiên bản 5 được tạo bằng không gian tên ISO OID và tên "Android". |
Các nhà mạng phải định cấu hình quy tắc URSP cho từng lưu lượng truy cập phân đoạn bằng thành phần mô tả lưu lượng truy cập là "Loại mã nhận dạng hệ điều hành + mã nhận dạng ứng dụng hệ điều hành". Ví dụ: phân đoạn "ENTERPRISE" phải có giá trị là 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
.
Giá trị này là phép nối của OSId, độ dài của OSAppId (0x0A
) và OSAppId.
Để biết thêm thông tin về loại thành phần mô tả lưu lượng truy cập, hãy xem Bảng 5.2.1 trong 3GPP TS 24.526.
Bảng sau đây mô tả các giá trị OSAppId cho nhiều danh mục lát cắt.
Danh mục lát cắt | OSAppId | Mô tả |
---|---|---|
ENTERPRISE |
0x454E5445525052495345 |
OSAppId là một mảng byte biểu thị chuỗi ENTERPRISE |
ENTERPRISE2 |
0x454E544552505249534532 |
OSAppId là một mảng byte biểu thị chuỗi ENTERPRISE2 |
ENTERPRISE3 |
0x454E544552505249534533 |
OSAppId là một mảng byte biểu thị chuỗi ENTERPRISE3 |
ENTERPRISE4 |
0x454E544552505249534534 |
OSAppId là một mảng byte biểu thị chuỗi ENTERPRISE4 |
ENTERPRISE5 |
0x454E544552505249534535 |
OSAppId là một mảng byte biểu thị chuỗi ENTERPRISE5 |
CBS |
0x434253 |
OSAppId là một mảng byte biểu thị chuỗi CBS |
PRIORITIZE_LATENCY |
0x5052494f524954495a455f4c4154454e4359 |
OSAppId là một mảng byte biểu thị chuỗi PRIORITIZE_LATENCY |
PRIORITIZE_BANDWIDTH |
0x5052494f524954495a455f42414e445749445448 |
OSAppId là một mảng byte biểu thị chuỗi PRIORITIZE_BANDWIDTH |
PRIORITIZE_UNIFIED_COMMUNICATIONS |
0x5052494f524954495a455f554e49464945445f434f4d4d554e49434154494f4e53 |
OSAppId là một mảng byte biểu thị chuỗi PRIORITIZE_UNIFIED_COMMUNICATIONS |
Ví dụ về các quy tắc URSP
Các bảng sau đây cho thấy ví dụ về các quy tắc URSP cho doanh nghiệp, CBS, độ trễ thấp, băng thông cao và lưu lượng truy cập mặc định.
Doanh nghiệp 1
Android 12 trở lên có hỗ trợ Enterprise 1. Sau đây là ví dụ về quy tắc URSP cho lưu lượng truy cập ENTERPRISE1:
Quy tắc URSP số 1 (enterprise1) | |
---|---|
Quyền ưu tiên | 1 (0x01) |
Nội dung mô tả lưu lượng truy cập #1 | |
Mã nhận dạng hệ điều hành + Loại mã nhận dạng ứng dụng hệ điều hành | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thành phần 2: DNN | doanh nghiệp |
Nội dung mô tả lựa chọn tuyến đường số 2 | |
Quyền ưu tiên | 2 (0x02) |
Thành phần 1: DNN | doanh nghiệp |
Doanh nghiệp 2
Android 13 trở lên có hỗ trợ Enterprise 2. Sau đây là ví dụ về quy tắc URSP cho lưu lượng truy cập ENTERPRISE2:
Quy tắc URSP số 2 (enterprise2) | |
---|---|
Quyền ưu tiên | 2 (0x02) |
Nội dung mô tả lưu lượng truy cập #1 | |
Mã nhận dạng hệ điều hành + Loại mã nhận dạng ứng dụng hệ điều hành | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thành phần 2: DNN | enterprise2 |
Nội dung mô tả lựa chọn tuyến đường số 2 | |
Quyền ưu tiên | 2 (0x02) |
Thành phần 1: DNN | enterprise2 |
Doanh nghiệp 3
Android 13 trở lên có hỗ trợ Enterprise 3. Sau đây là ví dụ về quy tắc URSP cho lưu lượng truy cập ENTERPRISE3:
Quy tắc URSP số 3 (enterprise3) | |
---|---|
Quyền ưu tiên | 3 (0x03) |
Nội dung mô tả lưu lượng truy cập #1 | |
Mã nhận dạng hệ điều hành + Loại mã nhận dạng ứng dụng hệ điều hành | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thành phần 2: DNN | enterprise3 |
Nội dung mô tả lựa chọn tuyến đường số 2 | |
Quyền ưu tiên | 2 (0x02) |
Thành phần 1: DNN | enterprise3 |
Enterprise 4
Android 13 trở lên có hỗ trợ Enterprise 4. Sau đây là ví dụ về quy tắc URSP cho lưu lượng truy cập ENTERPRISE4:
Quy tắc URSP số 4 (enterprise4) | |
---|---|
Quyền ưu tiên | 4 (0x04) |
Nội dung mô tả lưu lượng truy cập #1 | |
Mã nhận dạng hệ điều hành + Loại mã nhận dạng ứng dụng hệ điều hành | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thành phần 2: DNN | enterprise4 |
Nội dung mô tả lựa chọn tuyến đường số 2 | |
Quyền ưu tiên | 2 (0x02) |
Thành phần 1: DNN | enterprise4 |
Enterprise 5
Android 13 trở lên có hỗ trợ Enterprise 5. Sau đây là ví dụ về quy tắc URSP cho lưu lượng truy cập ENTERPRISE5:
Quy tắc URSP số 5 (enterprise5) | |
---|---|
Quyền ưu tiên | 5 (0x05) |
Nội dung mô tả lưu lượng truy cập #1 | |
Mã nhận dạng hệ điều hành + Loại mã nhận dạng ứng dụng hệ điều hành | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thành phần 2: DNN | enterprise5 |
Nội dung mô tả lựa chọn tuyến đường số 2 | |
Quyền ưu tiên | 2 (0x02) |
Thành phần 1: DNN | enterprise5 |
CBS
Android 13 trở lên có hỗ trợ CBS. Sau đây là ví dụ về quy tắc URSP cho lưu lượng truy cập CBS:
Quy tắc URSP số 6 (CBS) | |
---|---|
Quyền ưu tiên | 6 (0x06) |
Nội dung mô tả lưu lượng truy cập #1 | |
Mã nhận dạng hệ điều hành + Loại mã nhận dạng ứng dụng hệ điều hành | 0x97A498E3FC925C9489860333D06E4E4703434253 |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thành phần 2: DNN | cbs |
Nội dung mô tả lựa chọn tuyến đường số 2 | |
Quyền ưu tiên | 2 (0x02) |
Thành phần 1: DNN | cbs |
Độ trễ thấp
Tính năng Hỗ trợ độ trễ thấp có trong Android 13 trở lên. Sau đây là ví dụ về quy tắc URSP cho lưu lượng truy cập LOW_LATENCY:
Quy tắc URSP số 7 (độ trễ thấp) | |
---|---|
Quyền ưu tiên | 7 (0x07) |
Nội dung mô tả lưu lượng truy cập #1 | |
Mã nhận dạng hệ điều hành + Loại mã nhận dạng ứng dụng hệ điều hành | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thành phần 2: DNN | thời gian chờ |
Nội dung mô tả lựa chọn tuyến đường số 2 | |
Quyền ưu tiên | 2 (0x02) |
Thành phần 1: DNN | thời gian chờ |
Băng thông cao
Tính năng Hỗ trợ băng thông cao có trong Android 13 trở lên. Sau đây là ví dụ về quy tắc URSP cho lưu lượng truy cập HIGH_BANDWIDTH:
Quy tắc URSP số 8 (băng thông cao) | |
---|---|
Quyền ưu tiên | 8 (0x08) |
Nội dung mô tả lưu lượng truy cập #1 | |
Mã nhận dạng hệ điều hành + Loại mã nhận dạng ứng dụng hệ điều hành | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thành phần 2: DNN | băng thông |
Nội dung mô tả lựa chọn tuyến đường số 2 | |
Quyền ưu tiên | 2 (0x02) |
Thành phần 1: DNN | băng thông |
Mặc định
Quy tắc URSP số 9 (mặc định) | |
---|---|
Quyền ưu tiên | 9 (0x09) |
Nội dung mô tả lưu lượng truy cập #1 | |
khớp tất cả | Không áp dụng |
Nội dung mô tả lựa chọn tuyến đường 1 | |
Quyền ưu tiên | 1 (0x01) |
Thành phần 1: S-NSSAI | SST:XX SD:YYYYYY |
Thử nghiệm
Để kiểm tra tính năng phân chia mạng 5G, hãy sử dụng quy trình kiểm thử thủ công sau đây.
Để thiết lập một thiết bị cho mục đích kiểm thử, hãy làm như sau:
Đảm bảo rằng chính sách URSP được định cấu hình bằng một quy tắc không mặc định khớp với danh mục doanh nghiệp và rằng bộ mô tả lựa chọn tuyến đường tương ứng sẽ ánh xạ danh mục doanh nghiệp với phân đoạn doanh nghiệp; và một quy tắc mặc định chuyển hướng lưu lượng truy cập đến phân đoạn internet mặc định.
Đảm bảo rằng bạn đã định cấu hình hồ sơ công việc trên thiết bị.
Chọn sử dụng tính năng phân chia mạng thông qua DPC
Để kiểm thử hành vi phân chia mạng 5G, hãy làm như sau:
- Xác minh rằng một phiên PDU được thiết lập với phân đoạn doanh nghiệp (ví dụ: bằng cách sử dụng một địa chỉ IP cụ thể) và các ứng dụng trong hồ sơ công việc sử dụng phiên PDU đó.
- Xác minh rằng một phiên PDU riêng biệt được thiết lập với lát internet mặc định và các ứng dụng trong hồ sơ cá nhân sử dụng phiên PDU.
Bán thêm dịch vụ phân chia mạng 5G
Tính năng bán thêm phân đoạn 5G (có từ Android 14-QPR1) cho phép nhà mạng cung cấp các chức năng mạng nâng cao (độ trễ và băng thông) cho người dùng thông qua tính năng phân đoạn mạng 5G.
Tính năng bán thêm phân chia 5G sử dụng phản hồi TS.43 từ máy chủ cấp quyền của nhà mạng để thúc đẩy quy trình mua hàng. Hãng vận chuyển có thể sử dụng phản hồi này để chỉ định URL cho webview mua hàng của hãng vận chuyển, gửi dữ liệu bổ sung đến webview và cho biết liệu lát cắt có được cung cấp và có sẵn trên mạng của hãng vận chuyển hay không.
Các nhà mạng có thể tuỳ chỉnh hành vi của tính năng bán thêm phân đoạn 5G bằng cách sử dụng cấu hình nhà mạng. Cấu hình này kiểm soát việc có thể đưa ra yêu cầu mua hay không, thời điểm ứng dụng được phép yêu cầu các chức năng cao cấp và thời gian chờ của khung Telephony đối với phản hồi từ người dùng hoặc mạng.
Tính năng bán thêm phân đoạn 5G cung cấp một giao diện (gọi là DataBoostWebServiceFlow
) để cho phép giao tiếp giữa Android và webview của nhà mạng.
Hình 2 cho thấy quy trình mua gói thuê bao có phân chia mạng 5G:
Hình 2. Quy trình mua gói nâng cấp phân chia mạng 5G.
Quy trình cấp quyền TS.43
Khi người dùng yêu cầu các chức năng mạng nâng cao, khung Telephony sẽ yêu cầu cấu hình quyền sử dụng dịch vụ cho chức năng nâng cao được yêu cầu. Nếu phản hồi TS.43 hợp lệ, thì khung Telephony sẽ sử dụng các trường trong phản hồi HTTP để điều khiển yêu cầu mua hàng.
Cắt các trường mua
Cấu hình quyền TS.43 bao gồm các trường mua lát cắt sau:
- Trạng thái quyền
Phím:
EntitlementStatus
Loại:
int
Các giá trị được hỗ trợ:
0
(đã tắt),1
(đã bật),2
(không tương thích),3
(đang cung cấp),4
(đã bao gồm)- Trạng thái cấp phép
Phím:
ProvStatus
Loại:
int
Các giá trị được hỗ trợ:
0
(chưa được cung cấp),1
(đã được cung cấp),2
(không có sẵn),3
(đang tiến hành)
Khung Telephony sử dụng sự kết hợp giữa trạng thái được cấp phép và trạng thái cung cấp để xác định trạng thái mua lát cắt hiện tại. Kết quả có thể là một trong những kết quả sau:
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS
PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR
Nếu trạng thái quyền là 1
(đã bật) và trạng thái cấp phép là 0
(chưa được cấp phép), thì khung Telephony sẽ hiển thị thông báo bán thêm cho người dùng để mua gói tăng tốc thông qua webview của nhà mạng. Bảng sau đây mô tả hành vi của khung Telephony cho các tổ hợp giá trị trạng thái cấp phép và trạng thái được hưởng quyền khác nhau.
Trạng thái cấp phép | |||||
---|---|---|---|---|---|
Chưa được cấp phép (0 ) |
Đã cung cấp (1 ) |
Không có (2 ) |
Đang tiến hành (3 ) |
||
Trạng thái quyền | Đã tắt (0 ) |
Không thành công | Không thành công | Không thành công | Không thành công |
Đã bật (1 ) |
Hiện chế độ xem web | Đã mua | Đã mua | Đang diễn ra | |
Không tương thích (2 ) |
Không thành công | Không thành công | Không thành công | Không thành công | |
Cung cấp (3 ) |
Lỗi của hãng vận chuyển | Lỗi của hãng vận chuyển | Đang diễn ra | Đang diễn ra | |
Đã bao gồm (4 ) |
Lỗi của hãng vận chuyển | Đã mua | Đã mua | Lỗi của hãng vận chuyển |
Các trường trong luồng dịch vụ
Phản hồi TS.43 chỉ định URL, dữ liệu người dùng và loại nội dung để tuỳ chỉnh hành vi webview mua hàng của nhà mạng. Nếu loại nội dung không được chỉ định, thì URL sẽ được tải dưới dạng yêu cầu GET. Nếu dữ liệu người dùng tồn tại, thì dữ liệu đó sẽ được thêm vào URL dưới dạng một tham số truy vấn (ví dụ: https://www.android.com?encodedValue=Base64EncodedUserData
); và nếu không tồn tại, thì URL sẽ được sử dụng nguyên trạng (ví dụ: https://www.android.com
).
Nếu loại nội dung được chỉ định ở định dạng JSON hoặc XML, thì URL sẽ được tải dưới dạng một yêu cầu POST và dữ liệu người dùng (được giải mã nếu được mã hoá ở Base 64) sẽ được gửi dưới dạng dữ liệu cho yêu cầu POST.
- URL
Phím:
ServiceFlow_URL
Loại:
String
Ví dụ:
"https://www.android.com"
- Dữ liệu người dùng
Phím:
ServiceFlow_UserData
Loại:
String
Ví dụ:
"encodedValue=Base64EncodedUserData"
- Loại nội dung
Phím:
ServiceFlow_ContentsType
Loại:
String
Các giá trị được hỗ trợ:
0
(không xác định),1
(JSON),2
(XML)
Cấu hình nhà mạng
Sau đây là các cấu hình nhà mạng mà bạn có thể tuỳ chỉnh để thay đổi hành vi của tính năng bán thêm phân đoạn 5G.
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY
Danh sách các chức năng nâng cao được hỗ trợ. Đây là một mảng số nguyên của
TelephonyManager.PremiumCapability
. Những chức năng cao cấp này có cùng giá trị với lớpNetworkCapabilities.NetCapability
tương ứng. Nếu một chức năng cao cấp được yêu cầu và không có trong cấu hình này, thì yêu cầu mua sẽ không thành công với kết quảCARRIER_DISABLED
.Trong Android 14, chỉ có
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
được hỗ trợ.KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
Số lần tối đa mỗi ngày mà thông báo bán thêm khi mua hàng được hiển thị cho người dùng. Nếu đạt đến giới hạn tối đa hằng ngày, thông báo bán thêm sẽ không xuất hiện và các yêu cầu mua (bao gồm cả yêu cầu của máy chủ cấp quyền) sẽ bị điều tiết cho đến nửa đêm ngày hôm sau. Các yêu cầu mua hàng được thực hiện sau khi đạt đến mức tối đa hằng ngày sẽ không thành công với kết quả
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
Số lần tối đa mỗi tháng mà thông báo bán thêm khi mua hàng được hiển thị cho người dùng. Nếu đạt đến hạn mức tối đa hằng tháng, thông báo bán thêm sẽ không xuất hiện và các yêu cầu mua (bao gồm cả yêu cầu của máy chủ cấp quyền) sẽ bị điều tiết cho đến ngày đầu tiên của tháng tiếp theo. Các yêu cầu mua hàng được thực hiện sau khi đạt đến mức tối đa hàng tháng sẽ không thành công với kết quả
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
URL mua hàng của hãng vận chuyển dự phòng sẽ hiển thị cho người dùng khi họ nhấp vào thông báo bán thêm. Nếu không tìm thấy URL mua trong phản hồi TS.43 từ máy chủ cấp phép, thì giá trị này sẽ được dùng thay thế. Nếu URL từ phản hồi TS.43 hoặc cấu hình của nhà mạng không hợp lệ, thì yêu cầu mua sẽ không thành công với kết quả
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
.KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL
Cho phép mua các tính năng cao cấp khi thiết bị được kết nối với mạng Long-Term Evolution (LTE) hay không. Nếu
true
, bạn có thể yêu cầu mua hàng trên cả LTE và New Radio (NR). Nếufalse
, yêu cầu mua hàng chỉ có thể được thực hiện trên NR và yêu cầu được thực hiện trên LTE sẽ không thành công với kết quảPURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE
.KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
Khoảng thời gian hiển thị thông báo bán thêm giao dịch mua cho người dùng trước khi thông báo tự động bị huỷ. Khi thông báo bị huỷ, các yêu cầu tiếp theo sẽ bị điều tiết và không thành công với kết quả
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Khoảng thời gian mà các yêu cầu mua hàng tiếp theo sẽ bị điều tiết sau khi xảy ra lỗi do hết thời gian chờ hoặc người dùng huỷ. Nếu người dùng không nhấp vào thông báo bán thêm giao dịch mua trong khoảng thời gian chờ do
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
chỉ định hoặc nếu họ huỷ hoặc đóng thông báo, thì bộ hẹn giờ giảm tốc này sẽ bắt đầu. Trong khi bộ tính giờ này đang hoạt động, các yêu cầu mua hàng sẽ không thành công với kết quảPURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Khoảng thời gian mà các yêu cầu mua hàng tiếp theo sẽ bị điều tiết sau khi xảy ra lỗi do nhà mạng hoặc mạng. Nếu quá trình kiểm tra quyền không thành công, URL không dùng được hoặc URL mua của nhà mạng cho biết lỗi, thì bộ hẹn giờ giảm tốc này sẽ bắt đầu. Trong khi bộ hẹn giờ này đang hoạt động, các yêu cầu mua hàng sẽ không thành công với kết quả
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG
Khoảng thời gian mà mạng phải thiết lập cấu hình phân chia cho khả năng mua gói cao cấp. Trong khoảng thời gian này, các yêu cầu mua hàng tiếp theo sẽ bị chặn và trả về kết quả
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
. Nếu mạng không thiết lập được cấu hình phân chia kịp thời, thì các ứng dụng có thể yêu cầu mua lại các chức năng cao cấp. Dịch vụ điện thoại không coi giao dịch mua là hoàn tất cho đến khi cấu hình phân chia tương ứng được gửi, bất kể người dùng đã thanh toán cho nhà mạng hay chưa.
Giao diện JavaScript
Khi người dùng nhấp vào thông báo tăng cường mạng, một đối tượng WebView
có URL mua của nhà mạng sẽ xuất hiện cho người dùng. Các hãng vận chuyển có thể sử dụng các API được cung cấp trong giao diện Javascript DataBoostWebServiceFlow
trong trang web mua hàng của họ để giao tiếp với ứng dụng mua hàng từng phần.
Trang web của hãng vận chuyển có thể nhận được chức năng nâng cao theo yêu cầu thông qua phương thức getRequestedCapability()
.
Nếu giao dịch mua thành công, trang web của hãng vận chuyển phải thông báo cho ứng dụng mua vé máy bay từng chặng thông qua notifyPurchaseSuccessful()
hoặc notifyPurchaseSuccessful(duration)
, trong đó duration
là một tham số không bắt buộc cho biết thời lượng dự kiến của vé máy bay từng chặng.
Nếu giao dịch mua không thành công, trang web của hãng vận chuyển phải thông báo cho ứng dụng mua từng phần thông qua phương thức notifyPurchaseFailed(code, reason)
, trong đó code
là mã lỗi cho biết lý do khiến giao dịch không thành công và reason
là lý do khiến giao dịch không thành công mà con người có thể đọc được nếu mã lỗi không xác định.
Nếu bạn không gọi một trong hai phương thức phản hồi này, giao dịch mua sẽ không được coi là hoàn tất và yêu cầu mua sẽ hết thời gian chờ.
Sau đây là các mã lỗi hợp lệ mà trang web của hãng vận chuyển có thể trả về khi giao dịch mua không thành công:
FAILURE_CODE_UNKNOWN
FAILURE_CODE_CARRIER_URL_UNAVAILABLE
FAILURE_CODE_AUTHENTICATION_FAILED
FAILURE_CODE_PAYMENT_FAILED
FAILURE_CODE_NO_USER_DATA
Khi giao dịch mua hoàn tất, hãng vận chuyển phải cập nhật các quy tắc URSP bằng phần PRIORITIZE_LATENCY
cho thiết bị của người dùng.