สำหรับอุปกรณ์ที่ใช้ 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 มี API สำหรับโทรศัพท์และ 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 แบบจับคู่ทั้งหมดตามค่าเริ่มต้นหรือไม่ "โทรศัพท์" ตั้งค่านี้เป็น "จริง" สำหรับเครือข่ายเริ่มต้น แต่ไม่ใช่สำหรับส่วนย่อย ระบบจะใช้กฎการทำงานแบบตรงทั้งหมดกับเครือข่ายเริ่มต้น เมื่อแอปขอส่วนแบ่งที่เจาะจงซึ่งไม่พร้อมใช้งาน ระบบจะรายงานว่าสไลซ์ดังกล่าวไม่พร้อมใช้งาน สำหรับแอปขององค์กร เฟรมเวิร์กโทรศัพท์อาจกลับไปใช้เครือข่ายเริ่มต้นได้หากเครือข่ายขององค์กรไม่พร้อมใช้งาน
นอกจากนี้ โมเด็มยังต้องใช้ 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 สําหรับการเข้าชมแต่ละส่วนที่มีคอมโพเนนต์ตัวระบุการเข้าชมเป็น "ประเภทรหัส OS + รหัสแอป OS" เช่น ส่วนของ "ENTERPRISE" ต้องมีค่าเป็น 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
ค่านี้คือการต่อ OSId, ความยาวของ OSAppId (0x0A
) และ OSAppId
ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทคอมโพเนนต์ตัวระบุการจราจรได้ที่ 3GPP TS 24.526 ตาราง 5.2.1
ตารางต่อไปนี้อธิบายค่า OSAppId สําหรับหมวดหมู่ส่วนต่างๆ
หมวดหมู่ข้อมูลพร็อพเพอร์ตี้ | OSAppId | คำอธิบาย |
---|---|---|
องค์กร | 0x454E5445525052495345 |
OSAppId คืออาร์เรย์ไบต์ที่แสดงสตริง "ENTERPRISE" |
Enterprise 2 | 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 | Enterprise |
ข้อบ่งชี้การเลือกเส้นทาง #2 | |
ลําดับความสําคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | องค์กร |
Enterprise 2
การสนับสนุนสำหรับ Enterprise 2 พร้อมให้บริการใน Android 13 ขึ้นไป ตัวอย่างกฎ URSP สําหรับการเข้าชม ENTERPRISE2 มีดังนี้
กฎ URSP #2 (องค์กร2) | |
---|---|
ลําดับความสําคัญ | 2 (0x02) |
ข้อบ่งชี้การเข้าชม #1 | |
รหัสระบบปฏิบัติการ + ประเภทรหัสแอปของระบบปฏิบัติการ | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
ข้อบ่งชี้การเลือกเส้นทาง #1 | |
ลําดับความสําคัญ | 1 (0x01) |
คอมโพเนนต์ #1: S-NSSAI | SST:XX SD:YYYYYY |
คอมโพเนนต์ #2: DNN | enterprise2 |
ข้อบ่งชี้การเลือกเส้นทาง #2 | |
ลําดับความสําคัญ | 2 (0x02) |
คอมโพเนนต์ #1: DNN | องค์กร2 |
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
เมื่อผู้ใช้ส่งคำขอความสามารถของเครือข่ายที่ปรับปรุงแล้ว เฟรมเวิร์กโทรศัพท์จะขอการกําหนดค่าการให้สิทธิ์บริการสําหรับความสามารถระดับพรีเมียมที่ขอ หากการตอบกลับ 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
(ไม่ได้จัดสรร) เฟรมเวิร์กโทรศัพท์จะแสดงการแจ้งเตือนการขายอัปเซลให้ผู้ใช้ซื้อการเพิ่มระดับผ่าน WebView ของผู้ให้บริการ ตารางต่อไปนี้อธิบายลักษณะการทํางานของเฟรมเวิร์กการโทรสําหรับชุดค่าผสมต่างๆ ของค่าสถานะการจัดสรรและการให้สิทธิ์
สถานะการจัดสรร | |||||
---|---|---|---|---|---|
ไม่ได้จัดสรร (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
รายการความสามารถระดับพรีเมียมที่รองรับ นี่คืออาร์เรย์ 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 การซื้อของผู้ให้บริการระบุว่ามีข้อผิดพลาด ตัวจับเวลา Backoff นี้จะเริ่มทำงาน ขณะที่ตัวจับเวลานี้ทำงานอยู่ คำขอซื้อจะล้มเหลวโดยมีผลลัพธ์
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
เป็นพารามิเตอร์ที่ไม่บังคับซึ่งระบุระยะเวลาที่ต้องการของส่วน
หากการซื้อไม่สำเร็จ เว็บไซต์ของผู้ให้บริการต้องแจ้งแอป Slice purchase ผ่านเมธอด 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
ในอุปกรณ์ของผู้ใช้