Phân đoạn 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 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.

Các thành phần 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 modem
  • sliceInfo: Chỉ định thông tin về lát mạng sẽ được dùng trong trường hợp chuyển giao EPDG sang 5G
  • matchAllRuleAllowed: 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:

  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à 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.

  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 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:

  1. 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 đó.
  2. 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:

Quy trình mua hàng bán thêm 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:

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ớp NetworkCapabilities.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ếu false, 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:

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.