สำหรับอุปกรณ์ที่ใช้ Android 12 ขึ้นไป Android จะรองรับการแบ่งเครือข่าย 5G ซึ่งเป็นการใช้การจำลองเครือข่ายเพื่อแบ่งการเชื่อมต่อเครือข่ายเดียวออกเป็นการเชื่อมต่อเสมือนหลายรายการที่แตกต่างกัน ซึ่งให้ทรัพยากรในปริมาณที่แตกต่างกันสำหรับการเข้าชมแต่ละประเภท การแบ่งเครือข่าย 5G ช่วยให้ผู้ให้บริการเครือข่ายสามารถจัดสรรเครือข่ายบางส่วนเพื่อให้บริการฟีเจอร์ที่เฉพาะเจาะจงสำหรับกลุ่มลูกค้าบางกลุ่ม Android 12 เปิดตัวความสามารถต่อไปนี้สำหรับการแบ่งเครือข่าย 5G สำหรับองค์กร ซึ่งผู้ให้บริการเครือข่ายสามารถมอบให้แก่ลูกค้าองค์กร
การแบ่งเสี้ยวอุปกรณ์ขององค์กรสำหรับอุปกรณ์ที่มีการจัดการครบวงจร
สําหรับองค์กรที่มอบอุปกรณ์ของบริษัทที่จัดการอย่างเต็มรูปแบบให้กับพนักงาน ผู้ให้บริการเครือข่ายสามารถมอบข้อมูลเครือข่ายขององค์กรที่ใช้งานอยู่อย่างน้อย 1 ข้อมูลที่จะกำหนดเส้นทางการรับส่งข้อมูลในอุปกรณ์ของบริษัท ตั้งแต่ Android 12 เป็นต้นไป Android อนุญาตให้ผู้ให้บริการเครือข่ายให้บริการข้อมูลส่วนกลางสำหรับองค์กรผ่านกฎ URSP แทนการตั้งค่าข้อมูลส่วนกลางผ่าน APN
การแยกแอปธุรกิจขององค์กรสำหรับอุปกรณ์ที่มีโปรไฟล์งาน
สำหรับองค์กรที่ใช้โซลูชันโปรไฟล์งาน Android 12 อนุญาตให้อุปกรณ์กำหนดเส้นทางการรับส่งข้อมูลจากแอปทั้งหมดในโปรไฟล์งานไปยังกลุ่มเครือข่ายขององค์กร องค์กรสามารถเปิดใช้ความสามารถนี้ผ่านเครื่องมือควบคุมนโยบายด้านอุปกรณ์ (DPC)
โซลูชันโปรไฟล์งานมีระดับการตรวจสอบสิทธิ์และการควบคุมการเข้าถึงอัตโนมัติที่องค์กรจําเป็นต้องใช้เพื่อให้มั่นใจว่าจะมีการส่งเฉพาะการรับส่งข้อมูลจากแอปขององค์กรในโปรไฟล์งานไปยังส่วนของเครือข่ายขององค์กรเท่านั้น แอปในโปรไฟล์งานไม่จำเป็นต้องแก้ไขเพื่อขอข้อมูลส่วนเครือข่ายขององค์กรอย่างชัดเจน
การทำงานของการสไลซ์เครือข่าย 5G ใน AOSP
Android 12 รองรับการแบ่งความถี่ของเครือข่าย 5G ผ่านการเพิ่มโค้ดฐานโทรศัพท์ใน AOSP และโมดูลการแชร์อินเทอร์เน็ตผ่านมือถือเพื่อรวม API การเชื่อมต่อที่มีอยู่ซึ่งจำเป็นสำหรับการแบ่งความถี่ของเครือข่าย
แพลตฟอร์มโทรศัพท์ของ Android มี HAL และ API การโทรเพื่อรองรับการแบ่งความถี่ตามคำขอเครือข่ายที่ส่งโดยโค้ดเครือข่ายหลักและความสามารถการแบ่งความถี่ 5G ในโมเด็ม รูปที่ 1 อธิบายองค์ประกอบของฟีเจอร์การแบ่งเครือข่าย 5G
รูปที่ 1 สถาปัตยกรรมการแบ่งเครือข่าย 5G ใน AOSP
แพลตฟอร์มโทรศัพท์และการเชื่อมต่อรองรับสิ่งต่อไปนี้
- แปลงคําขอเครือข่ายสําหรับหมวดหมู่ส่วนของข้อมูลเป็นตัวระบุการเข้าชม จากนั้นส่งไปยังโมเด็มสําหรับการจับคู่การเข้าชม URSP และการเลือกเส้นทาง
- กลับไปใช้เครือข่ายเริ่มต้นหากข้อมูลโค้ดเครือข่ายขององค์กรไม่พร้อมใช้งาน
- การกำหนดเส้นทางการรับส่งข้อมูลจากแอปทั้งหมดในโปรไฟล์งานไปยังการเชื่อมต่อที่เกี่ยวข้อง
การรองรับการแบ่งกลุ่มองค์กร
- การตรวจหาโปรไฟล์งานในอุปกรณ์
- ตรวจสอบสิทธิ์หรือเส้นทางที่ระบุจาก DPC ที่ผู้ดูแลระบบไอทีขององค์กรใช้
บริการเครือข่ายหลักมีการเปลี่ยนแปลงต่อไปนี้ในข้อบังคับการต่อเชื่อมใน Android 12
- เพิ่มคลาส API สาธารณะหรือระบบส่วนใหญ่ของ
android.net.*
ลงในโมดูลการต่อฮอตสปอตจากมือถือ ขยายขอบเขตของโมดูลการต่อฮอตสปอตจากมือถือให้รวมรายการต่อไปนี้
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 ในอุปกรณ์ อุปกรณ์ดังกล่าวต้องมีโมเด็มที่รองรับ HAL ของ IRadio 1.6 ซึ่งมี setupDataCall_1_6
API API นี้จะตั้งค่าการเชื่อมต่อข้อมูลและมีพารามิเตอร์ต่อไปนี้เพื่อรองรับการแบ่งความถี่ 5G
trafficDescriptor
: ระบุตัวบ่งชี้การรับส่งข้อมูลที่ส่งไปยังโมเด็มsliceInfo
: ระบุข้อมูลสำหรับส่วนของเครือข่ายที่จะใช้ในในกรณีที่มีการส่งต่อจาก EPDG ไปยัง 5GmatchAllRuleAllowed
: ระบุว่าอนุญาตให้ใช้กฎ URSP แบบจับคู่ทั้งหมดเริ่มต้นหรือไม่ Telephony จะตั้งค่านี้เป็น "จริง" สําหรับเครือข่ายเริ่มต้น แต่จะไม่ตั้งค่าสําหรับข้อมูลส่วนต่างๆ กฎการทำงานแบบตรงทั้งหมดจะมีผลกับเครือข่ายเริ่มต้น เมื่อแอปขอข้อมูลส่วนใดส่วนหนึ่งที่ไม่พร้อมใช้งาน ระบบจะรายงานว่าข้อมูลส่วนนั้นไม่พร้อมใช้งาน สําหรับแอปขององค์กร เฟรมเวิร์กการโทรสามารถเปลี่ยนไปใช้เครือข่ายเริ่มต้นได้หากเครือข่ายขององค์กรไม่พร้อมใช้งาน
นอกจากนี้ โมเด็มยังต้องใช้ getSlicingConfig
API ด้วย เว้นแต่จะมีการรายงานว่า getHalDeviceCapabilities
API ไม่รองรับ
ข้อกำหนดของ Enterprise
ข้อมูลต่อไปนี้อธิบายข้อกำหนดสำหรับองค์กรในการใช้การสไลซ์เครือข่าย 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 สําหรับหมวดหมู่ส่วนต่างๆ
หมวดหมู่ข้อมูลพร็อพเพอร์ตี้ | OSAppId | คำอธิบาย |
---|---|---|
องค์กร | 0x454E5445525052495345 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "ENTERPRISE" |
ENTERPRISE2 | 0x454E544552505249534532 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "ENTERPRISE2" |
ENTERPRISE3 | 0x454E544552505249534533 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "ENTERPRISE3" |
ENTERPRISE4 | 0x454E544552505249534534 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "ENTERPRISE4" |
ENTERPRISE5 | 0x454E544552505249534535 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "ENTERPRISE5" |
CBS | 0x434253 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "CBS" |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "PRIORITIZE_LATENCY" |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "PRIORITIZE_BANDWIDTH" |
ตัวอย่างกฎ 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 สำหรับเว็บวิวการซื้อของผู้ให้บริการ ส่งข้อมูลเพิ่มเติมไปยังเว็บวิว และระบุว่ามีการจัดสรรและให้บริการข้อมูลในเครือข่ายของผู้ให้บริการหรือไม่
ผู้ให้บริการสามารถปรับแต่งลักษณะการทำงานของฟีเจอร์การอัปเกรด 5G โดยใช้การกำหนดค่าของผู้ให้บริการ ซึ่งจะควบคุมว่าจะส่งคำขอซื้อได้หรือไม่ เมื่อใดที่แอปจะได้รับอนุญาตให้ขอความสามารถระดับพรีเมียม และกรอบเวลารอการตอบกลับจากผู้ใช้หรือเครือข่าย
ฟีเจอร์การอัปเกรด 5G แบบแบ่งความถี่มีอินเทอร์เฟซที่เรียกว่า DataBoostWebServiceFlow
ซึ่งช่วยให้ Android สื่อสารกับ WebView ของผู้ให้บริการได้
รูปที่ 2 แสดงขั้นตอนการขายอัปเซลการแบ่งความถี่ 5G
รูปที่ 2 ขั้นตอนการซื้อการแบ่งความถี่ 5G เพื่อเพิ่มยอดขาย
กระบวนการให้สิทธิ์ TS.43
เมื่อผู้ใช้ส่งคำขอความสามารถของเครือข่ายที่ปรับปรุงแล้ว เฟรมเวิร์กโทรศัพท์จะขอการกําหนดค่าการให้สิทธิ์บริการสําหรับความสามารถระดับพรีเมียมที่ขอ หากการตอบกลับ TS.43 ถูกต้อง เฟรมเวิร์กโทรศัพท์จะใช้ฟิลด์จากการตอบกลับ HTTP เพื่อส่งคำขอซื้อ
ฟิลด์การซื้อตามกลุ่ม
การกําหนดค่าการให้สิทธิ์ TS.43 ประกอบด้วยช่องการซื้อส่วนต่อไปนี้
- สถานะการให้สิทธิ์
แป้น:
EntitlementStatus
ประเภท:
int
ค่าที่รองรับ:
0
(ปิดใช้),1
(เปิดใช้),2
(ใช้ร่วมกันไม่ได้),3
(การจัดสรร),4
(รวมอยู่ด้วย)- สถานะการจัดสรร
แป้น:
ProvStatus
ประเภท:
int
ค่าที่รองรับ:
0
(ไม่ได้จัดสรร),1
(จัดสรรแล้ว),2
(ไม่พร้อมใช้งาน),3
(อยู่ระหว่างดำเนินการ)
เฟรมเวิร์กโทรศัพท์จะใช้สถานะการให้สิทธิ์และสถานะการจัดสรรร่วมกันเพื่อกำหนดสถานะการซื้อส่วนปัจจุบัน ผลลัพธ์อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้
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
(ไม่ได้จัดสรร) เฟรมเวิร์กโทรศัพท์จะแสดงการแจ้งเตือนการอัปเกรดเพื่อแจ้งให้ผู้ใช้ซื้อการเร่งผ่านเว็บเบราว์เซอร์ของผู้ให้บริการ ตารางต่อไปนี้อธิบายลักษณะการทํางานของเฟรมเวิร์กโทรศัพท์สําหรับชุดค่าผสมต่างๆ ของค่าการจัดสรรและสถานะการให้สิทธิ์
สถานะการจัดสรร | |||||
---|---|---|---|---|---|
ไม่ได้จัดสรร (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)
การกำหนดค่าผู้ให้บริการ
ต่อไปนี้เป็นการกำหนดค่าของผู้ให้บริการที่พร้อมให้ปรับแต่งลักษณะการทำงานของฟีเจอร์การอัปเขายการแบ่งความถี่ 5G
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY
รายการความสามารถของ Premium ที่รองรับ นี่คืออาร์เรย์ int ของ
TelephonyManager.PremiumCapability
ความสามารถแบบพรีเมียมเหล่านี้มีค่าเดียวกับคลาสNetworkCapabilities.NetCapability
ที่เกี่ยวข้อง หากมีการขอความสามารถระดับพรีเมียม แต่ความสามารถดังกล่าวไม่รวมอยู่ในการกำหนดค่านี้ คำขอซื้อจะดำเนินการไม่สำเร็จพร้อมผลลัพธ์CARRIER_DISABLED
ใน Android 14 ระบบจะรองรับเฉพาะ
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
เท่านั้นKEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
จํานวนสูงสุดต่อวันครั้งที่ระบบแสดงการแจ้งเตือนการอัปเกรดการซื้อต่อผู้ใช้ หากถึงขีดจำกัดสูงสุดรายวัน ระบบจะไม่แสดงการแจ้งเตือนการอัปเกรด และระบบจะจำกัดคำขอซื้อ (รวมถึงคำขอเซิร์ฟเวอร์การให้สิทธิ์) จนกว่าจะถึงเที่ยงคืนของวันถัดไป คำขอซื้อที่ส่งหลังจากถึงจำนวนสูงสุดต่อวันจะดำเนินการไม่สำเร็จโดยแสดงผลลัพธ์เป็น
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
จํานวนสูงสุดรายเดือนที่การแจ้งเตือนการอัปเกรดการซื้อจะแสดงต่อผู้ใช้ หากมีการเพิ่มยอดขายสูงสุดรายเดือน ระบบจะไม่แสดงการแจ้งเตือนการอัปเกรด และระบบจะจำกัดคำขอซื้อ (รวมถึงคำขอสิทธิ์จากเซิร์ฟเวอร์) จนกว่าจะถึงวันแรกของเดือนถัดไป คำขอซื้อที่ดำเนินการหลังจากถึงจำนวนสูงสุดรายเดือนจะดำเนินการไม่สำเร็จโดยแสดงผลลัพธ์เป็น
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
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 ที่ระบุไว้ในอินเทอร์เฟซ JavaScript ของ DataBoostWebServiceFlow
ในเว็บไซต์การซื้อเพื่อสื่อสารกับแอปการซื้อแบบแบ่งส่วน
เว็บไซต์ของผู้ให้บริการสามารถรับความสามารถระดับพรีเมียมที่ขอผ่านวิธีการ
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
ไปยังอุปกรณ์ของผู้ใช้