Tính năng cắt mạng 5G

Đối với các thiết bị chạy Android 12 trở lên, Android hỗ trợ tính năng phân đoạn mạng 5G, sử dụng tính năng ảo hoá mạng để phân chia một kết nối mạng thành nhiều kết nối ảo riêng biệt, cung cấp nhiều lượng tài nguyên cho nhiều loại lưu lượng truy cập. Tính năng phân đoạn mạng 5G cho phép nhà 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 ra mắt các tính năng phân đoạn mạng 5G cho doanh nghiệp sau đây mà nhà mạng có thể cung cấp cho khách hàng doanh nghiệp:

Cắt lát thiết bị doanh nghiệp cho thiết bị được quản lý hoàn toàn

Đối với các doanh nghiệp cung cấp thiết bị của công ty được quản lý đầy đủ cho nhân viên, nhà cung cấp mạng có thể cung cấp cho họ một hoặc nhiều lát cắt mạng doanh nghiệp đang hoạt động, nơi lưu lượng truy cập trên thiết bị của công ty được định tuyến đến. Kể từ Android 12, Android cho phép các nhà mạng cung cấp lát cắt doanh nghiệp thông qua các quy tắc URSP, thay vì thiết lập lát cắt thông qua APN.

Cắt ứng dụng doanh nghiệp cho các thiết bị có hồ sơ công việc

Đối với các doanh nghiệp sử dụng giải pháp hồ sơ công việc, Android 12 cho phép 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 cắt mạng doanh nghiệp. Các doanh nghiệp có thể bật tính năng này thông qua Trình kiểm soát chính sách thiết bị (DPC).

Giải pháp hồ sơ công việc cung cấp cấp độ xác thực và kiểm soát quyền truy cập tự động mà các doanh nghiệp yêu cầu để đả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 mới được định tuyến đến lát cắt 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 lát cắt mạng doanh nghiệp.

Cách hoạt động của tính năng phân chia mạng 5G trong AOSP (Dự án nguồn mở Android)

Android 12 ra mắt tính năng hỗ trợ phân đoạn mạng 5G thông qua việc bổ sung vào cơ sở mã điện thoại trong AOSP và mô-đun Chuyển phát dữ liệu qua Wi-Fi để tích hợp các API kết nối hiện có cần thiết cho việc phân đoạn mạng.

Nền tảng điện thoại Android cung cấp các API HAL và điện thoại để hỗ trợ tính năng cắt dựa trên yêu cầu mạng do mã mạng cốt lõi gửi và khả năng cắt lát 5G trong modem. Hình 1 mô tả các thành phần của tính năng phân đoạn mạng 5G.

Các thành phần phân chia mạng 5G

Hình 1. Cấu trúc phân đoạn 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 cắt thành trình mô tả lưu lượng truy cập rồi chuyển đến modem để so khớp lưu lượng truy cập URSP và chọn ruta
  • Quay lại mạng mặc định nếu không có lát cắt mạng doanh nghiệp
  • Đị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 kết nối tương ứng
  • Hỗ trợ tính năng cắt cho 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 quyền hoặc hướng dẫn định tuyến do DPC mà quản trị viên CNTT của doanh nghiệp sử dụng cung cấp

Dịch vụ kết nối mạng cốt lõi bao gồm các thay đổi sau đây đối với mô-đun Chế độ 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 Cung cấp Internet qua USB
  • Mở rộng ranh giới của mô-đun Cung cấp Internet qua USB để 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 Chuyển phát Internet

Android 12 di chuyển mã bằng các tính năng sau sang mô-đun Chia sẻ Internet:

  • Nhận yêu cầu từ các ứng dụng về kết nối mạng
  • Nhận yêu cầu từ hệ thống (ví dụ: "đặt các ứng dụng này trên một lá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 nhằm cố gắng thiết lập mạng hoặc lát cắt bằng cách đi 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 (được giới thiệu trong Android 12)
  • Thông báo cho ứng dụng về những gì đang xảy ra với lưu lượng truy cập mạng của ứng dụng thông qua các API ConnectivityManager như NetworkCallback, getActiveNetwork, getNetworkCapabilities.

Triển khai

Để hỗ trợ tính năng phân đoạn 5G trên một thiết bị, thiết bị đó phải có modem hỗ trợ HAL IRadio 1.6 có API setupDataCall_1_6. API này thiết lập kết nối dữ liệu và bao gồm các tham số sau để hỗ trợ tính năng phân đoạn 5G:

  • trafficDescriptor: Chỉ định chỉ số mô tả lưu lượng truy cập được gửi đến modem
  • sliceInfo: Chỉ định thông tin cho lát cắt mạng sẽ được sử dụng trong trường hợp chuyển đổi từ EPDG sang 5G
  • matchAllRuleAllowed: Chỉ định xem có được phép sử dụng quy tắc URSP khớp tất cả mặc định hay không. Điện thoại thiết lập giá trị này thành true đối với các mạng mặc định nhưng không thiết lập cho lát cắt (slice). 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, thì 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 Điện thoại có thể quay lại mạng mặc định nếu không có mạng doanh nghiệp.

Modem cũng phải triển khai API getSlicingConfig, trừ phi API đó được báo cáo là không được API getHalDeviceCapabilities hỗ trợ.

Yêu cầu đối với doanh nghiệp

Nội dung sau đây mô tả yêu cầu để doanh nghiệp sử dụng tính năng cắt mạng 5G trên thiết bị trong quá trình triển khai Android cho doanh nghiệp.

  • Đảm bảo rằng các thiết bị được quản lý hoàn toàn hoặc thiết bị của nhân viên được thiết lập bằng hồ sơ công việc có thể sử dụng 5G SA với các modem hỗ trợ API setupDataCall_1_6.
  • Làm việc với đối tác là nhà mạng về việc thiết lập và thực hiện lát cắt hoặc các đặc điểm của Thoả thuận mức độ cung cấp dịch vụ (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 đoạn mạng 5G sẽ tắt theo mặc định trong AOSP. Để bật tính năng phân đoạn 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 đoạn mạng của doanh nghiệp trên cơ sở từng nhân viên thông qua EMM DPC. EMM DPC sử dụng phương thức setPreferentialNetworkServiceEnabled trong API DevicePolicyManager (DPM) (được giới thiệu 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ợ ứng dụng dành cho doanh nghiệp.

Quy tắc URSP

Phần này cung cấp thông tin cho các nhà mạng về cách định cấu hình quy tắc URSP cho các danh mục lát cắt khác nhau, bao gồm cả doanh nghiệp, CBS, độ trễ thấp và lưu lượng băng thông cao. Khi định cấu hình quy tắc URSP cho các danh mục lát cắt khác nhau, 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ả
Mã hệ điều hành 97a498e3-fc92-5c94-8986-0333d06e4e47 OSId cho Android là UUID phiên bản 5 được tạo bằng không gian tên ISO OID và tên "Android".

Nhà mạng phải định cấu hình quy tắc URSP cho từng luồng lưu lượng truy cập với thành phần mô tả lưu lượng truy cập là "Loại mã nhận dạng ứng dụng + mã nhận dạng hệ điều hành". Ví dụ: Lát "ENTERPRISE" phải có giá trị là 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345. Giá trị này là kết hợp 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 3GPP TS 24.526 Bảng 5.2.1.

Bảng sau đây mô tả các giá trị OSAppId cho các danh mục lát cắt khác nhau.

Danh mục lát cắt Mã ứng dụng hệ điều hành Mô tả
DOANH NGHIỆP 0x454E5445525052495345 OSAppId là một mảng byte biểu thị chuỗi "ENTERPRISE"
ENTERPRISE2 0x454E544552505249534532 OSAppId là một mảng byte đại diện cho 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 của chuỗi "ENTERPRISE4"
ENTERPRISE5 0x454E544552505249534535 OSAppId là một mảng byte của chuỗi "ENTERPRISE5"
CBS 0x434253 OSAppId là một mảng byte biểu thị chuỗi "CBS"
ƯU TIÊN_ĐỪNG BỎ LỠ 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"

Ví dụ về quy tắc URSP

Các bảng sau đây cho thấy ví dụ về 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

Hỗ trợ cho Enterprise 1 có trong Android 12 trở lên. 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)
Mức độ ưu tiên 1 (0x01)
Chỉ số mô tả lưu lượng truy cập #1
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 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
Nội dung mô tả lựa chọn tuyến đường #1
Mức độ ưu tiên 1 (0x01)
Thành phần 1: S-NSSAI SST:XX SD:YYYYYY
Thành phần số 2: DNN doanh nghiệp
Nội dung mô tả lựa chọn tuyến đường #2
Mức độ ưu tiên 2 (0x02)
Thành phần 1: DNN doanh nghiệp

Doanh nghiệp 2

Có hỗ trợ Enterprise 2 trên Android 13 trở lên. 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)
Mức độ ưu tiên 2 (0x02)
Chỉ số mô tả lưu lượng truy cập #1
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 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532
Nội dung mô tả lựa chọn tuyến đường #1
Mức độ ưu tiên 1 (0x01)
Thành phần 1: S-NSSAI SST:XX SD:YYYYYY
Thành phần số 2: DNN doanh nghiệp2
Nội dung mô tả lựa chọn tuyến đường #2
Mức độ ưu tiên 2 (0x02)
Thành phần 1: DNN doanh nghiệp2

Doanh nghiệp 3

Hỗ trợ cho Enterprise 3 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 ENTERPRISE3:

Quy tắc URSP số 3 (enterprise3)
Mức độ ưu tiên 3 (0x03)
Chỉ số mô tả lưu lượng truy cập #1
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 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533
Nội dung mô tả lựa chọn tuyến đường #1
Mức độ ư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 #2
Mức độ ưu tiên 2 (0x02)
Thành phần 1: DNN doanh nghiệp 3

Enterprise 4

Hỗ trợ cho Enterprise 4 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 ENTERPRISE4:

Quy tắc URSP số 4 (enterprise4)
Quyền ưu tiên 4 (0x04)
Chỉ số mô tả lưu lượng truy cập #1
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 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534
Nội dung mô tả lựa chọn tuyến đường #1
Mức độ ưu tiên 1 (0x01)
Thành phần 1: S-NSSAI SST:XX SD:YYYYYY
Thành phần số 2: DNN enterprise4
Nội dung mô tả lựa chọn tuyến đường #2
Mức độ ưu tiên 2 (0x02)
Thành phần 1: DNN doanh nghiệp 4

Enterprise 5

Hỗ trợ cho Enterprise 5 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 ENTERPRISE5:

Quy tắc URSP số 5 (enterprise5)
Mức độ ưu tiên 5 (0x05)
Bộ mô tả lưu lượng truy cập #1
Mã hệ điều hành + Loại mã ứng dụng hệ điều hành 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535
Nội dung mô tả lựa chọn tuyến đường #1
Mức độ ư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 #2
Mức độ ưu tiên 2 (0x02)
Thành phần số 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)
Mức độ ưu tiên 6 (0x06)
Bộ mô tả lưu lượng truy cập #1
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 0x97A498E3FC925C9489860333D06E4E4703434253
Nội dung mô tả lựa chọn tuyến đường #1
Mức độ ưu tiên 1 (0x01)
Thành phần 1: S-NSSAI SST:XX SD:YYYYYY
Thành phần số 2: DNN cbs
Nội dung mô tả lựa chọn tuyến đường #2
Mức độ ưu tiên 2 (0x02)
Thành phần 1: DNN Cb

Độ trễ thấp

Tính năng hỗ trợ Độ trễ thấp có trên 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)
Mức độ ưu tiên 7 (0x07)
Chỉ số mô tả lưu lượng truy cập #1
Mã hệ điều hành + Loại mã ứng dụng hệ điều hành 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359
Nội dung mô tả lựa chọn tuyến đường #1
Mức độ ưu tiên 1 (0x01)
Thành phần 1: S-NSSAI SST:XX SD:YYYYYY
Thành phần số 2: DNN thời gian chờ
Nội dung mô tả lựa chọn tuyến đường #2
Mức độ ư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 #8 (băng thông cao)
Mức độ ưu tiên 8 (0x08)
Chỉ số mô tả lưu lượng truy cập #1
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 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448
Nội dung mô tả lựa chọn tuyến đường #1
Mức độ ư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 #2
Mức độ ưu tiên 2 (0x02)
Thành phần 1: DNN băng thông

Mặc định

Quy tắc URSP #9 (mặc định)
Mức độ ưu tiên 9 (0x09)
Chỉ số 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
Mức độ ư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 cắt mạng 5G, hãy sử dụng quy trình kiểm tra thủ công sau đây.

Để thiết lập thiết bị cho hoạt động kiểm thử, hãy làm như sau:

  1. Đả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à chỉ số mô tả lựa chọn tuyến tương ứng liên kết danh mục doanh nghiệp với lát cắt doanh nghiệp; cũng như một quy tắc mặc định hướng lưu lượng truy cập đến lát cắt Internet mặc định.

  2. Đảm bảo rằng bạn đã định cấu hình hồ sơ công việc trên thiết bị.

  3. Chọn sử dụng tính năng phân đoạn mạng thông qua DPC

Để kiểm thử hành vi phân đoạn mạng 5G, hãy làm như sau:

  1. Xác minh rằng một phiên PDU được thiết lập bằng lát cắt 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 đó.
  2. Xác minh rằng một phiên PDU riêng biệt được thiết lập bằng 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 gói cắt 5G

Tính năng bán thêm theo kiểu phân đoạn 5G (có trong Android 14-QPR1) cho phép nhà mạng cung cấp các tính 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 gói 5G theo từng phần sử dụng phản hồi TS.43 từ máy chủ quyền của nhà mạng để thúc đẩy quy trình mua hàng. Nhà mạng có thể sử dụng phản hồi để chỉ định URL cho webview mua hàng của nhà mạng, 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 nhà mạng hay không.

Nhà mạng có thể tuỳ chỉnh hành vi của tính năng bán thêm gói dữ liệu 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ể thực hiện yêu cầu mua hay không, thời điểm ứng dụng được phép yêu cầu các tính năng cao cấp và thời gian khung Điện thoại chờ phản hồi từ người dùng hoặc mạng.

Tính năng bán thêm theo cách phân đoạn 5G cung cấp một giao diện có tên 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 hàng để bán thêm gói cắt 5G:

Quy trình mua thêm dịch vụ 5G bán thêm

Hình 2. Quy trình mua hàng bán thêm gói cắt băng thông 5G.

Quy trình cấp quyền TS.43

Khi người dùng yêu cầu các tính năng mạng nâng cao, khung Điện thoại sẽ yêu cầu cấu hình quyền sử dụng dịch vụ cho tính năng nâng cao được yêu cầu. Nếu phản hồi TS.43 là hợp lệ, khung Điện thoại sẽ sử dụng các trường trong phản hồi HTTP để thúc đẩy yêu cầu mua hàng.

Trường mua Lát cắt

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 (cấp phép), 4 (bao gồm)

Trạng thái cấp phép

Phím: ProvStatus

Loại: int

Giá trị được hỗ trợ: 0 (chưa được cấp phép), 1 (đã được cấp phép), 2 (không có sẵn), 3 (đang tiến hành)

Khung Điện thoại sử dụng tổ hợp trạng thái quyền và trạng thái cấp phé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:

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 Điện thoại sẽ hiển thị thông báo bán thêm để người dùng mua gói nâng cấp thông qua khung hiển thị web của nhà mạng. Bảng sau đây mô tả hành vi của khung Điện thoại cho nhiều tổ hợp giá trị trạng thái cấp phép và cấp phép.

Trạng thái cấp phép
Chưa được cấp phép (0) Đã cấp phé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 thị webview Đã 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
Cấp phép (3) Lỗi nhà mạng Lỗi của nhà mạng Đang diễn ra Đang diễn ra
Đã bao gồm (4) Lỗi của nhà mạng Đã mua Đã mua Lỗi nhà mạng

Các trường của quy trình 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, URL sẽ được tải dưới dạng một yêu cầu GET. Nếu dữ liệu người dùng tồn tại, thì URL đó sẽ được thêm vào URL dưới dạng tham số truy vấn (ví dụ: https://www.android.com?encodedValue=Base64EncodedUserData); và nếu không tồn tại, 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 yêu cầu POST và dữ liệu người dùng (được giải mã nếu được mã hoá trong 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 chỉ định), 1 (JSON), 2 (XML)

Cấu hình nhà mạng

Sau đây là các cấu hình nhà mạng có sẵn để tuỳ chỉnh hành vi của tính năng bán thêm gói 5G.

KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY

Danh sách các tính năng cao cấp được hỗ trợ. Đây là một mảng int của TelephonyManager.PremiumCapability. Các tính năng cao cấp này có cùng giá trị với lớp NetworkCapabilities.NetCapability tương ứng. Nếu bạn yêu cầu một tính năng cao cấp nhưng tính năng đó không có trong cấu hình này, thì yêu cầu mua sẽ không thành công và kết quả sẽ là CARRIER_DISABLED.

Trong Android 14, chỉ PREMIUM_CAPABILITY_PRIORITIZE_LATENCY được hỗ trợ.

KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT

Số lần thông báo bán thêm sản phẩm đã mua được hiển thị cho người dùng tối đa hằng ngày. Nếu đã đạt đến mức tối đa hằng ngày, thông báo bán thêm sẽ không xuất hiện và yêu cầu mua hàng (bao gồm cả yêu cầu máy chủ quyền) sẽ được đ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à có kết quả là PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED.

KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT

Số lần thông báo bán thêm giao dịch mua xuất hiện cho người dùng tối đa hằng tháng. Nếu đã đạt đế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 hàng (bao gồm cả yêu cầu 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 giới hạn tối đa hằng tháng sẽ không thành công và có kết quả là PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED.

KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING

URL mua hàng của nhà mạng dự phòng để 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 giao dịch mua trong phản hồi TS.43 từ máy chủ quyền, thì giá trị này sẽ được sử dụng. Nếu cả URL từ phản hồi TS.43 lẫn cấu hình của nhà mạng đều không hợp lệ, thì yêu cầu mua sẽ không thành công với kết quả là PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED.

KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL

Liệu có cho phép mua các tính năng cao cấp khi thiết bị kết nối với công nghệ Long-Term Evolution (LTE) hay không. Nếu là true, bạn có thể thực hiện yêu cầu mua trên cả LTE và New Radio (NR). Nếu giá trị là false, bạn chỉ có thể thực hiện yêu cầu mua trên NR và các yêu cầu thực hiện trên LTE sẽ không thành công với kết quả là 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 không thành công 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 khi mua hàng 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ờ thời gian đợi này sẽ bắt đầu. Trong khi bộ tính giờ này hoạt động, các yêu cầu mua hàng sẽ không thực hiện được 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ẽ được điều tiết sau khi xảy ra lỗi do nhà mạng hoặc mạng. Nếu quy trình kiểm tra quyền không thành công, URL không truy cập được hoặc URL mua của nhà mạng cho biết không thành công, thì bộ hẹn giờ thời gian đợi này sẽ bắt đầu. Khi bộ hẹn giờ này đang hoạt động, các yêu cầu mua sẽ không thành công với kết quả là 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 đoạn cho tính năng mua gói ưu tiên. Trong khoảng thời gian này, các yêu cầu mua 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 kịp cấu hình cắt, thì các ứng dụng có thể yêu cầu mua lại các tính năng cao cấp. Tính năng Điện thoại không coi giao dịch mua là hoàn tất cho đến khi cấu hình cắt tương ứng được gửi, bất kể người dùng có thanh toán cho nhà mạng hay không.

Giao diện JavaScript

Khi người dùng nhấp vào thông báo tăng cường mạng, người dùng sẽ thấy đối tượng WebView có URL mua hàng của nhà mạng. Nhà mạng có thể sử dụng các API được cung cấp trong giao diện JavaScript DataBoostWebServiceFlow trên trang web mua hàng của họ để giao tiếp với ứng dụng mua lẻ.

Trang web của nhà mạng có thể nhận được tính năng cao cấp được 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 nhà mạng phải thông báo cho ứng dụng mua lát cắt 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 lát cắt.

Nếu giao dịch mua không thành công, trang web của nhà mạng phải thông báo cho ứng dụng mua luồng thông qua phương thức notifyPurchaseFailed(code, reason), trong đó code là mã lỗi cho biết lý do lỗi và reason là lý do lỗi mà con người có thể đọc được nếu không biết mã lỗi.

Nếu 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 nhà mạng có thể trả về khi giao dịch mua không thành công:

Khi giao dịch mua hoàn tất, nhà mạng phải cập nhật các quy tắc URSP bằng lát cắt PRIORITIZE_LATENCY cho thiết bị của người dùng.