สำหรับอุปกรณ์ที่ใช้ Android 12 ขึ้นไป Android รองรับการแบ่งส่วนเครือข่าย 5G ซึ่งเป็นการใช้การจำลองเสมือนของเครือข่ายเพื่อ แบ่งการเชื่อมต่อเครือข่ายเดียวออกเป็นการเชื่อมต่อเสมือนที่แตกต่างกันหลายรายการ ซึ่งจัดสรรทรัพยากรในปริมาณที่แตกต่างกันให้กับประเภทการรับส่งข้อมูลต่างๆ การแบ่งส่วนเครือข่าย 5G ช่วยให้ผู้ให้บริการเครือข่ายสามารถจัดสรรส่วนหนึ่งของเครือข่ายเพื่อ ให้บริการฟีเจอร์ที่เฉพาะเจาะจงสำหรับกลุ่มลูกค้าที่เฉพาะเจาะจง Android 12 ขอแนะนำความสามารถในการแบ่งส่วนเครือข่าย 5G สำหรับองค์กรต่อไปนี้ ซึ่งผู้ให้บริการเครือข่าย สามารถมอบให้แก่ลูกค้าองค์กรได้
การแบ่งส่วนอุปกรณ์ขององค์กรสำหรับอุปกรณ์ที่มีการจัดการครบวงจร
สำหรับองค์กรที่มอบอุปกรณ์ของบริษัทที่มีการจัดการเต็มรูปแบบให้แก่พนักงาน ผู้ให้บริการเครือข่ายสามารถมอบ Network Slice ขององค์กรที่ใช้งานอยู่ 1 รายการขึ้นไปให้แก่พนักงาน ซึ่งจะมีการกำหนดเส้นทาง การรับส่งข้อมูลในอุปกรณ์ของบริษัทไปยัง Network Slice เหล่านั้น ตั้งแต่ Android 12 เป็นต้นไป Android อนุญาตให้ผู้ให้บริการ ระบุการแบ่งส่วนเครือข่ายสำหรับองค์กรผ่านกฎ URSP แทนการตั้งค่าการแบ่งส่วนเครือข่าย ผ่าน APN
การแบ่งแอปธุรกิจระดับองค์กรสำหรับอุปกรณ์ที่มีโปรไฟล์งาน
สำหรับองค์กรที่ใช้โซลูชันโปรไฟล์งาน Android 12 จะอนุญาตให้อุปกรณ์กำหนดเส้นทางการรับส่งข้อมูลจากแอปทั้งหมดในโปรไฟล์งานไปยัง Network Slice ขององค์กร องค์กรสามารถเปิดใช้ความสามารถนี้ผ่านเครื่องมือควบคุมนโยบายด้านอุปกรณ์ (DPC)
โซลูชันโปรไฟล์งานมีการตรวจสอบสิทธิ์และการควบคุมการเข้าถึงโดยอัตโนมัติในระดับที่องค์กรต้องการเพื่อให้มั่นใจว่าระบบจะกำหนดเส้นทางเฉพาะการรับส่งข้อมูลจากแอปขององค์กรในโปรไฟล์งานไปยัง Network Slice ขององค์กร ไม่จำเป็นต้องแก้ไขแอปในโปรไฟล์งานเพื่อขอ Network Slice ขององค์กรอย่างชัดแจ้ง
การแบ่งส่วนเครือข่าย 5G ใน AOSP ทำงานอย่างไร
Android 12 รองรับการแบ่งเครือข่าย 5G โดยการเพิ่มโค้ดเบสของโทรศัพท์ใน AOSP และโมดูลการแชร์อินเทอร์เน็ต เพื่อรวม API การเชื่อมต่อที่มีอยู่ซึ่งจำเป็นสำหรับการแบ่งเครือข่าย
แพลตฟอร์มโทรศัพท์ Android มี HAL และ Telephony API เพื่อรองรับ การแบ่งส่วนตามคำขอเครือข่ายที่ยื่นโดยโค้ดเครือข่ายหลักและความสามารถในการแบ่งส่วน 5G ในโมเด็ม รูปที่ 1 อธิบายส่วนประกอบของฟีเจอร์ Network Slicing 5G
รูปที่ 1 สถาปัตยกรรมการแบ่งส่วนเครือข่าย 5G ใน AOSP
แพลตฟอร์มโทรศัพท์และการเชื่อมต่อรองรับสิ่งต่อไปนี้
- แปลงคำขอเครือข่ายสำหรับหมวดหมู่สไลซ์เป็นตัวอธิบายการเข้าชม ซึ่งจะส่งไปยังโมเด็มเพื่อการจับคู่การเข้าชม URSP และการเลือกเส้นทาง
- เปลี่ยนกลับไปใช้เครือข่ายเริ่มต้นหาก Network Slice ขององค์กรไม่พร้อมใช้งาน
- กำหนดเส้นทางการรับส่งข้อมูลจากแอปทั้งหมดในโปรไฟล์งานไปยัง การเชื่อมต่อที่เกี่ยวข้อง
การรองรับการแบ่งส่วนเครือข่ายสำหรับองค์กร
- การตรวจหาการมีอยู่ของโปรไฟล์งานในอุปกรณ์
- ตรวจสอบสิทธิ์หรือเส้นทางการกำหนดเส้นทางที่ได้รับจาก DPC ที่ผู้ดูแลระบบไอทีขององค์กรใช้
บริการเครือข่ายหลักมีการเปลี่ยนแปลงต่อไปนี้ในโมดูลการแชร์อินเทอร์เน็ต ใน Android 12
- เพิ่มคลาส API สาธารณะหรือระบบส่วนใหญ่ของ
android.net.*
ลงในโมดูล 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.java
f/b/services/core/java/com/android/server/TestNetworkService.java
ย้ายโค้ด VPN ออกจากโมดูลการแชร์อินเทอร์เน็ต
Android 12 ย้ายโค้ดที่มีความสามารถต่อไปนี้ ไปยังโมดูลการแชร์อินเทอร์เน็ต
- การรับคำขอจากแอปสำหรับการเชื่อมต่อเครือข่าย
- รับคำขอจากระบบ (เช่น "วางแอปเหล่านี้ใน ส่วนขององค์กร" ซึ่งเปิดตัวใน Android 12)
- การส่งคำขอจากระบบไปยังโค้ดโทรศัพท์ซึ่งพยายาม ตั้งค่าเครือข่ายหรือสไลซ์โดยผ่าน HAL API และโมเด็ม
- การแจ้ง netd เกี่ยวกับวิธีกำหนดเส้นทางการรับส่งข้อมูลต่อแอป (เปิดตัวใน Android 12)
- แจ้งให้แอปทราบว่าเกิดอะไรขึ้นกับการรับส่งข้อมูลเครือข่ายผ่าน
ConnectivityManager
API เช่นNetworkCallback
,getActiveNetwork
,getNetworkCapabilities
การใช้งาน
หากต้องการรองรับการแบ่งส่วน 5G ในอุปกรณ์ อุปกรณ์ต้องมีโมเด็มที่รองรับ
IRadio 1.6 HAL ซึ่งมี
setupDataCall_1_6
API API นี้จะตั้งค่าการเชื่อมต่อข้อมูลและมีพารามิเตอร์ต่อไปนี้
เพื่อรองรับการแบ่งส่วน 5G
trafficDescriptor
: ระบุตัวอธิบายการเข้าชมที่ส่งไปยังโมเด็มsliceInfo
: ระบุข้อมูลสำหรับ Network Slice ที่จะใช้ในกรณีที่มีการส่งต่อจาก EPDG ไปยัง 5GmatchAllRuleAllowed
: ระบุว่าอนุญาตให้ใช้กฎ URSP เริ่มต้นที่ตรงกันทั้งหมดหรือไม่ Telephony จะตั้งค่านี้เป็น "จริง" สำหรับเครือข่ายเริ่มต้น แต่ไม่ใช่สำหรับ Slice กฎการจับคู่ทั้งหมดจะใช้กับเครือข่ายเริ่มต้น เมื่อแอปขอ Slice ที่เฉพาะเจาะจงซึ่งไม่พร้อมใช้งาน ระบบจะรายงานว่า Slice นั้นไม่พร้อมใช้งาน สำหรับ แอปขององค์กร เฟรมเวิร์ก Telephony จะกลับไปใช้ เครือข่ายเริ่มต้นได้หากเครือข่ายขององค์กรไม่พร้อมใช้งาน
นอกจากนี้ โมเด็มยังต้องใช้ API ของ
getSlicingConfig
ด้วย เว้นแต่จะมีการรายงานว่า API ของ
getHalDeviceCapabilities
ไม่รองรับ
ข้อกำหนดขององค์กร
ต่อไปนี้คือข้อกำหนดสำหรับองค์กรในการใช้การแบ่งเครือข่าย 5G ในอุปกรณ์ในการติดตั้งใช้งาน Android Enterprise
- ตรวจสอบว่าอุปกรณ์ที่มีการจัดการครบวงจรหรืออุปกรณ์ของพนักงานที่ตั้งค่าด้วยโปรไฟล์งาน
รองรับ 5G SA พร้อมโมเด็มที่รองรับ
setupDataCall_1_6
API - ทำงานร่วมกับพาร์ทเนอร์ผู้ให้บริการขนส่งในการตั้งค่าและประสิทธิภาพของสไลซ์ หรือลักษณะ SLA
เปิดใช้การแบ่งส่วน 5G ในอุปกรณ์ที่ตั้งค่าด้วยโปรไฟล์งาน
สำหรับอุปกรณ์ที่ตั้งค่าด้วยโปรไฟล์งาน การแบ่งเครือข่าย 5G จะปิดอยู่โดยค่าเริ่มต้นใน AOSP หากต้องการเปิดใช้การแบ่งส่วนเครือข่าย ผู้ดูแลระบบไอทีขององค์กรสามารถเปิดหรือปิดการกำหนดเส้นทางการรับส่งข้อมูลของแอปในโปรไฟล์งานไปยังการแบ่งส่วนเครือข่ายขององค์กรได้โดยอิงตามพนักงานแต่ละรายผ่าน DPC ของ EMM ซึ่งใช้เมธอด setPreferentialNetworkServiceEnabled
ใน DevicePolicyManager
(DPM)
API (เปิดตัวใน Android 12)
ผู้ให้บริการ EMM ที่มี DPC ที่กำหนดเองต้องผสานรวม DevicePolicyManager
API เพื่อ
รองรับลูกค้าองค์กร
กฎ URSP
ส่วนนี้มีข้อมูลสำหรับผู้ให้บริการเกี่ยวกับการกำหนดค่ากฎ URSP สำหรับ หมวดหมู่สไลซ์ต่างๆ รวมถึงการรับส่งข้อมูลขององค์กร CBS เวลาในการตอบสนองต่ำ และการรับส่งข้อมูลที่มีแบนด์วิดท์สูง เมื่อกำหนดค่ากฎ URSP สำหรับ หมวดหมู่สไลซ์ต่างๆ ผู้ให้บริการต้องใช้ค่าเฉพาะของ Android ต่อไปนี้
รหัส | ค่านิยม | คำอธิบาย |
---|---|---|
OSId | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
OSId สำหรับ Android คือ UUID เวอร์ชัน 5 ที่สร้างขึ้นด้วยเนมสเปซ ISO OID และชื่อ "Android" |
ผู้ให้บริการต้องกำหนดค่ากฎ URSP สำหรับการรับส่งข้อมูลแต่ละสไลซ์โดยมีคอมโพเนนต์ตัวอธิบายการรับส่งข้อมูลเป็น "ประเภทรหัสระบบปฏิบัติการ + รหัสแอปของระบบปฏิบัติการ" เช่น สไลซ์ "ENTERPRISE"
ต้องมีค่าเป็น
0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
ค่านี้คือการต่อกันของ OSId, ความยาวของ OSAppId (0x0A
) และ OSAppId
ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทคอมโพเนนต์ของตัวอธิบายการเข้าชมได้ที่
3GPP TS 24.526 ตาราง 5.2.1
ตารางต่อไปนี้อธิบายค่า OSAppId สำหรับหมวดหมู่ Slice ต่างๆ
หมวดหมู่ Slice | 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" |
จัดลำดับความสำคัญของแบนด์วิดท์ | 0x5052494f524954495a455f42414e445749445448 |
OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "PRIORITIZE_BANDWIDTH" |
ตัวอย่างกฎ URSP
ตารางต่อไปนี้แสดงตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูลขององค์กร CBS, เวลาในการตอบสนองต่ำ, แบนด์วิดท์สูง และการรับส่งข้อมูลเริ่มต้น
Enterprise 1
การรองรับ Enterprise 1 พร้อมใช้งานใน Android 12 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE1 มีดังนี้
กฎ URSP #1 (enterprise1) | |
---|---|
ลำดับความสำคัญ | 1 (0x01) |
ตัวอธิบายการเข้าชม #1 | |
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | องค์กร |
ตัวอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | องค์กร |
Enterprise 2
การรองรับ Enterprise 2 พร้อมใช้งานใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE2 มีดังนี้
กฎ URSP #2 (enterprise2) | |
---|---|
ลำดับความสำคัญ | 2 (0x02) |
ตัวอธิบายการเข้าชม #1 | |
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | enterprise2 |
ตัวอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | enterprise2 |
Enterprise 3
การรองรับ Enterprise 3 พร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE3 มีดังนี้
กฎ URSP #3 (enterprise3) | |
---|---|
ลำดับความสำคัญ | 3 (0x03) |
ตัวอธิบายการเข้าชม #1 | |
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | enterprise3 |
ตัวอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | enterprise3 |
Enterprise 4
การรองรับ Enterprise 4 พร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE4 มีดังนี้
กฎ URSP #4 (enterprise4) | |
---|---|
ลำดับความสำคัญ | 4 (0x04) |
ตัวอธิบายการเข้าชม #1 | |
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | enterprise4 |
ตัวอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | enterprise4 |
Enterprise 5
การรองรับ Enterprise 5 พร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE5 มีดังนี้
กฎ URSP #5 (enterprise5) | |
---|---|
ลำดับความสำคัญ | 5 (0x05) |
ตัวอธิบายการเข้าชม #1 | |
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | enterprise5 |
ตัวอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | enterprise5 |
CBS
การรองรับ CBS พร้อมใช้งานใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล CBS มีดังนี้
กฎ URSP #6 (CBS) | |
---|---|
ลำดับความสำคัญ | 6 (0x06) |
ตัวอธิบายการเข้าชม #1 | |
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ | 0x97A498E3FC925C9489860333D06E4E4703434253 |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | cbs |
ตัวอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | cbs |
เวลาในการตอบสนองต่ำ
การรองรับเวลาในการตอบสนองต่ำพร้อมใช้งานใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล LOW_LATENCY มีดังนี้
กฎ URSP #7 (เวลาในการตอบสนองต่ำ) | |
---|---|
ลำดับความสำคัญ | 7 (0x07) |
ตัวอธิบายการเข้าชม #1 | |
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | เวลาในการตอบสนอง |
ตัวอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | เวลาในการตอบสนอง |
แบนด์วิดท์สูง
การรองรับแบนด์วิดท์สูงพร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล HIGH_BANDWIDTH มีดังนี้
กฎ URSP #8 (แบนด์วิดท์สูง) | |
---|---|
ลำดับความสำคัญ | 8 (0x08) |
ตัวอธิบายการเข้าชม #1 | |
ประเภทรหัสระบบปฏิบัติการ + รหัสแอปในระบบปฏิบัติการ | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | แบนด์วิดท์ |
ตัวอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | แบนด์วิดท์ |
ค่าเริ่มต้น
กฎ URSP #9 (ค่าเริ่มต้น) | |
---|---|
ลำดับความสำคัญ | 9 (0x09) |
ตัวอธิบายการเข้าชม #1 | |
match-all | ไม่มี |
ตัวอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
การทดสอบ
หากต้องการทดสอบการแบ่งเครือข่าย 5G ให้ใช้การทดสอบด้วยตนเองต่อไปนี้
หากต้องการตั้งค่าอุปกรณ์สำหรับการทดสอบ ให้ทำดังนี้
ตรวจสอบว่าได้กำหนดค่านโยบาย URSP ด้วยกฎที่ไม่ใช่ค่าเริ่มต้นซึ่ง ตรงกับหมวดหมู่องค์กร และตัวอธิบายการเลือกเส้นทางที่เกี่ยวข้อง จะแมปหมวดหมู่องค์กรกับสไลซ์องค์กร และกฎเริ่มต้น ที่นำการรับส่งข้อมูลไปยังสไลซ์อินเทอร์เน็ตเริ่มต้น
ตรวจสอบว่าได้กำหนดค่าโปรไฟล์งานในอุปกรณ์แล้ว
เลือกใช้การแบ่งเครือข่ายผ่าน DPC
หากต้องการทดสอบลักษณะการทำงานของการแบ่งเครือข่าย 5G ให้ทำดังนี้
- ตรวจสอบว่ามีการสร้างเซสชัน PDU ด้วยสไลซ์ขององค์กร (เช่น โดยใช้ที่อยู่ IP ที่เฉพาะเจาะจง) และแอปในโปรไฟล์งานใช้เซสชัน PDU นั้น
- ยืนยันว่ามีการสร้างเซสชัน PDU แยกต่างหากด้วยสไลซ์อินเทอร์เน็ตเริ่มต้น และแอปในโปรไฟล์ส่วนตัวใช้เซสชัน PDU
การอัปเซลล์การแบ่งส่วนเครือข่าย 5G
ฟีเจอร์การขายอัปเซลล์การแบ่งส่วน 5G ซึ่งพร้อมใช้งานตั้งแต่ Android 14-QPR1 ช่วยให้ผู้ให้บริการสามารถนำเสนอความสามารถของเครือข่ายที่ได้รับการปรับปรุง (เวลาในการตอบสนองและแบนด์วิดท์) แก่ผู้ใช้ผ่านการแบ่งส่วนเครือข่าย 5G
ฟีเจอร์การอัปเซลล์การแบ่งส่วน 5G ใช้การตอบกลับ TS.43 จากเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ เพื่อกระตุ้นขั้นตอนการซื้อ ผู้ให้บริการสามารถใช้การตอบกลับเพื่อ ระบุ URL สำหรับ WebView การซื้อของผู้ให้บริการ ส่งข้อมูลเพิ่มเติมไปยัง WebView และระบุว่ามีการจัดสรรและพร้อมใช้งานใน เครือข่ายของผู้ให้บริการหรือไม่
ผู้ให้บริการสามารถปรับแต่งลักษณะการทำงานของฟีเจอร์การขายอัปเซลล์การแบ่งส่วน 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
(กำลังดำเนินการ)
เฟรมเวิร์ก Telephony ใช้สถานะการให้สิทธิ์และสถานะการจัดสรรร่วมกันเพื่อกำหนดสถานะการซื้อ Slice ปัจจุบัน ผลลัพธ์ อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้
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
หากสถานะการให้สิทธิ์เป็น 1
(เปิดใช้) และสถานะการจัดสรรเป็น 0
(ไม่ได้จัดสรร) เฟรมเวิร์กโทรศัพท์จะแสดงการแจ้งเตือนการขายอัปเซล
ให้ผู้ใช้ซื้อการเพิ่มผ่าน WebView ของผู้ให้บริการ ตารางต่อไปนี้
อธิบายลักษณะการทำงานของเฟรมเวิร์ก Telephony สำหรับค่าสถานะการจัดสรรและการให้สิทธิ์
ชุดค่าผสมต่างๆ
สถานะการจัดสรร | |||||
---|---|---|---|---|---|
ไม่ได้จัดสรร (0 ) |
จัดสรรแล้ว (1 |
ไม่พร้อมใช้งาน (2 ) |
กำลังดำเนินการ (3 ) |
||
สถานะการให้สิทธิ์ | ปิดใช้ (0 ) |
ไม่สำเร็จ | ไม่สำเร็จ | ไม่สำเร็จ | ไม่สำเร็จ |
เปิดใช้ (1 ) |
แสดง WebView | ซื้อแล้ว | ซื้อแล้ว | กำลังดำเนินการ | |
ไม่รองรับ (2 ) |
ไม่สำเร็จ | ไม่สำเร็จ | ไม่สำเร็จ | ไม่สำเร็จ | |
การจัดสรร (3 ) |
ข้อผิดพลาดของผู้ให้บริการ | ข้อผิดพลาดของผู้ให้บริการ | กำลังดำเนินการ | กำลังดำเนินการ | |
รวม (4 ) |
ข้อผิดพลาดของผู้ให้บริการ | ซื้อแล้ว | ซื้อแล้ว | ข้อผิดพลาดของผู้ให้บริการ |
ฟิลด์โฟลว์บริการ
การตอบกลับ TS.43 จะระบุ URL, ข้อมูลผู้ใช้ และประเภทเนื้อหาเพื่อปรับแต่ง
ลักษณะการทำงานของ WebView การซื้อของผู้ให้บริการ หากไม่ได้ระบุประเภทเนื้อหา ระบบจะโหลด URL เป็นคำขอ GET หากมีข้อมูลผู้ใช้ ระบบจะต่อท้ายข้อมูลดังกล่าวใน
URL เป็นพารามิเตอร์การค้นหา (เช่น
https://www.android.com?encodedValue=Base64EncodedUserData
) และหากไม่มี
ข้อมูล ระบบจะใช้ URL ตามเดิม (เช่น https://www.android.com
)
หากระบุประเภทเนื้อหาในรูปแบบ JSON หรือ XML ระบบจะโหลด URL เป็นคำขอ
POST และส่งข้อมูลผู้ใช้ (ถอดรหัสหากมีการเข้ารหัสใน Base 64) เป็น
ข้อมูลสำหรับคำขอ POST
- URL
แป้น:
ServiceFlow_URL
ประเภท:
String
ตัวอย่าง:
"https://www.android.com"
- ข้อมูลผู้ใช้
แป้น:
ServiceFlow_UserData
ประเภท:
String
ตัวอย่าง:
"encodedValue=Base64EncodedUserData"
- ประเภทเนื้อหา
แป้น:
ServiceFlow_ContentsType
ประเภท:
String
ค่าที่รองรับ:
0
(ไม่ได้ระบุ),1
(JSON),2
(XML)
การกำหนดค่าผู้ให้บริการ
การกำหนดค่าของผู้ให้บริการต่อไปนี้พร้อมให้ปรับแต่ง ลักษณะการทำงานของฟีเจอร์การขายเพิ่มสำหรับ Network Slicing 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
จำนวนครั้งสูงสุดต่อเดือนที่การแจ้งเตือนให้อัปเซลล์การซื้อจะแสดงต่อผู้ใช้ หากถึงขีดจำกัดรายเดือนแล้ว ระบบจะไม่แสดงการแจ้งเตือนให้อัปเซล และจะจำกัดคำขอซื้อ (รวมถึงคำขอเซิร์ฟเวอร์การให้สิทธิ์) จนถึงวันที่ 1 ของเดือนถัดไป คำขอซื้อที่ส่งหลังจากถึง ขีดจำกัดรายเดือนจะล้มเหลวพร้อมผลลัพธ์
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
URL การซื้อของผู้ให้บริการสำรองที่จะแสดงต่อผู้ใช้เมื่อคลิก การแจ้งเตือนการขายอัปเซล หากไม่พบ URL การซื้อในการตอบกลับ TS.43 จากเซิร์ฟเวอร์การให้สิทธิ์ ระบบจะใช้ค่านี้แทน หากทั้ง URL จากการตอบกลับ TS.43 และการกำหนดค่าของผู้ให้บริการไม่ถูกต้อง คำขอซื้อจะล้มเหลวพร้อมผลลัพธ์
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL
ว่าจะอนุญาตให้ซื้อความสามารถระดับพรีเมียมเมื่ออุปกรณ์ เชื่อมต่อกับ Long-Term Evolution (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
ระยะเวลาที่ควรจำกัดคำขอซื้อครั้งต่อๆ ไปหลังจาก การดำเนินการไม่สำเร็จเนื่องจากผู้ให้บริการหรือเครือข่าย หากการตรวจสอบการให้สิทธิ์ไม่สำเร็จ URL ไม่พร้อมใช้งาน หรือ URL การซื้อของผู้ให้บริการระบุว่าไม่สำเร็จ ตัวจับเวลา การหยุดชั่วคราวนี้จะเริ่มทำงาน ขณะที่ตัวจับเวลานี้ทำงาน คำขออนุมัติการซื้อจะล้มเหลวพร้อมผลลัพธ์
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG
ระยะเวลาที่เครือข่ายต้องกำหนดค่าการแบ่งส่วน สำหรับความสามารถในการซื้อแบบพรีเมียม ในช่วงนี้ ระบบจะบล็อกคำขอซื้อครั้งต่อๆ ไปและแสดงผลลัพธ์
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
หากเครือข่ายตั้งค่าการกำหนดค่าการแบ่งส่วนไม่ทันเวลา แอปจะ ขอซื้อความสามารถระดับพรีเมียมอีกครั้งได้ ระบบโทรศัพท์จะถือว่าการซื้อเสร็จสมบูรณ์เมื่อมีการส่งการกำหนดค่าการแบ่งส่วนที่เกี่ยวข้องแล้ว ไม่ว่าผู้ใช้จะชำระเงินให้ผู้ให้บริการหรือไม่ก็ตาม
อินเทอร์เฟซ JavaScript
เมื่อผู้ใช้คลิกการแจ้งเตือนการเพิ่มเครือข่าย ระบบจะแสดงออบเจ็กต์ WebView
ที่มี
URL การซื้อของผู้ให้บริการแก่ผู้ใช้ ผู้ให้บริการสามารถใช้ API
ที่ระบุไว้ใน
DataBoostWebServiceFlow
อินเทอร์เฟซ JavaScript ในเว็บไซต์การซื้อเพื่อสื่อสารกับแอปการซื้อ Slice
เว็บไซต์ของผู้ให้บริการสามารถรับความสามารถระดับพรีเมียมที่ขอได้ผ่านเมธอด
getRequestedCapability()
หากซื้อสำเร็จ เว็บไซต์ของผู้ให้บริการต้องแจ้งให้แอปซื้อสไลซ์ทราบผ่าน notifyPurchaseSuccessful()
หรือ notifyPurchaseSuccessful(duration)
โดย duration
เป็นพารามิเตอร์ที่ไม่บังคับซึ่งระบุระยะเวลาที่ต้องการของสไลซ์
หากการซื้อไม่สำเร็จ เว็บไซต์ของผู้ให้บริการขนส่งต้องแจ้งให้แอปซื้อสไลซ์
ทราบผ่านเมธอด notifyPurchaseFailed(code, reason)
โดยที่ code
คือรหัสความล้มเหลวที่ระบุสาเหตุของความล้มเหลว และ reason
คือ
สาเหตุของความล้มเหลวที่มนุษย์อ่านได้หากไม่ทราบรหัสความล้มเหลว
หากไม่ได้เรียกใช้เมธอดการตอบกลับเหล่านี้ ระบบจะไม่ถือว่าการซื้อเสร็จสมบูรณ์และคำขอซื้อจะหมดเวลาในที่สุด
รหัสความล้มเหลวที่ถูกต้องซึ่งเว็บไซต์ของผู้ให้บริการขนส่งสามารถแสดง เมื่อการซื้อล้มเหลวมีดังนี้
FAILURE_CODE_UNKNOWN
FAILURE_CODE_CARRIER_URL_UNAVAILABLE
FAILURE_CODE_AUTHENTICATION_FAILED
FAILURE_CODE_PAYMENT_FAILED
FAILURE_CODE_NO_USER_DATA
เมื่อการซื้อเสร็จสมบูรณ์ ผู้ให้บริการต้องอัปเดตกฎ URSP
ด้วยสไลซ์ PRIORITIZE_LATENCY
ไปยังอุปกรณ์ของผู้ใช้