สำหรับอุปกรณ์ที่ใช้ Android 12 ขึ้นไป Android จะรองรับการแบ่งส่วนเครือข่าย 5G ซึ่งเป็นการใช้เครือข่ายเสมือนจริงเพื่อแบ่งการเชื่อมต่อเครือข่ายเดียวออกเป็นการเชื่อมต่อเสมือนที่แตกต่างกันหลายรายการ ซึ่งจะมอบทรัพยากรในปริมาณที่แตกต่างกันให้กับการรับส่งข้อมูลประเภทต่างๆ การแบ่งส่วนเครือข่าย 5G ช่วยให้ผู้ให้บริการเครือข่ายสามารถจัดสรรส่วนหนึ่งของเครือข่ายเพื่อมอบคุณสมบัติเฉพาะสำหรับลูกค้ากลุ่มใดกลุ่มหนึ่งได้ Android 12 แนะนำความสามารถในการแบ่งส่วนเครือข่ายองค์กร 5G ต่อไปนี้ ซึ่งผู้ให้บริการเครือข่ายสามารถมอบให้กับไคลเอ็นต์องค์กรของตนได้
การแบ่งส่วนอุปกรณ์ระดับองค์กรสำหรับอุปกรณ์ที่มีการจัดการเต็มรูปแบบ
สำหรับองค์กรที่จัดหาอุปกรณ์ของบริษัทที่ มีการจัดการเต็มรูปแบบ ให้กับพนักงาน ผู้ให้บริการเครือข่ายสามารถจัดเตรียมชิ้นส่วนเครือข่ายองค์กรที่ใช้งานอยู่ตั้งแต่หนึ่งชิ้นขึ้นไปซึ่งมีการกำหนดเส้นทางการรับส่งข้อมูลบนอุปกรณ์ของบริษัทไป ตั้งแต่ Android 12 เป็นต้นไป Android อนุญาตให้ผู้ให้บริการจัดหาชิ้นส่วนขององค์กรผ่านกฎ URSP แทนที่จะตั้งค่าชิ้นส่วนผ่าน APN
การแบ่งส่วนแอปธุรกิจระดับองค์กรสำหรับอุปกรณ์ที่มีโปรไฟล์งาน
สำหรับองค์กรที่ใช้โซลูชัน โปรไฟล์งาน Android 12 จะอนุญาตให้อุปกรณ์กำหนดเส้นทางการรับส่งข้อมูลจากแอปทั้งหมดในโปรไฟล์งานไปยังชิ้นส่วนเครือข่ายขององค์กร องค์กรสามารถเปิดใช้ความสามารถนี้ผ่านทาง Device Policy Controller (DPC)
โซลูชันโปรไฟล์งานมอบการตรวจสอบสิทธิ์และการควบคุมการเข้าถึงในระดับอัตโนมัติที่องค์กรต้องการ เพื่อให้แน่ใจว่าเฉพาะการรับส่งข้อมูลจากแอประดับองค์กรในโปรไฟล์งานเท่านั้นที่ถูกส่งไปยังชิ้นส่วนเครือข่ายขององค์กร ไม่จำเป็นต้องแก้ไขแอปในโปรไฟล์งานเพื่อขอชิ้นส่วนเครือข่ายขององค์กรอย่างชัดเจน
การแบ่งส่วนเครือข่าย 5G ทำงานอย่างไรใน AOSP
Android 12 แนะนำการรองรับการแบ่งส่วนเครือข่าย 5G ผ่านการเพิ่มเติมในรหัสฐานโทรศัพท์ใน AOSP และ โมดูล Tethering เพื่อรวม API การเชื่อมต่อที่มีอยู่ซึ่งจำเป็นสำหรับการแบ่งส่วนเครือข่าย
แพลตฟอร์มโทรศัพท์ Android มี HAL และ API ระบบโทรศัพท์เพื่อรองรับการแบ่งส่วนตามคำขอเครือข่ายที่ยื่นโดยรหัสเครือข่ายหลักและความสามารถในการแบ่งส่วน 5G ในโมเด็ม รูปที่ 1 อธิบายส่วนประกอบของคุณสมบัติการแบ่งส่วนเครือข่าย 5G
รูปที่ 1 สถาปัตยกรรมการแบ่งส่วนเครือข่าย 5G ใน AOSP
แพลตฟอร์มโทรศัพท์และการเชื่อมต่อรองรับ:
- การแปลงคำขอเครือข่ายสำหรับหมวดหมู่สไลซ์เป็น ตัวบอกปริมาณการรับส่งข้อมูล ซึ่งจะถูกส่งต่อไปยังโมเด็มสำหรับการจับคู่การรับส่งข้อมูล URSP และการเลือกเส้นทาง
- ถอยกลับไปเป็นเครือข่ายเริ่มต้นหากไม่มีชิ้นส่วนเครือข่ายองค์กร
- กำหนดเส้นทางการรับส่งข้อมูลจากแอปทั้งหมดภายใต้โปรไฟล์งานไปยังการเชื่อมต่อที่เกี่ยวข้อง
รองรับการแบ่งส่วนระดับองค์กร
- การตรวจจับว่ามีโปรไฟล์งานอยู่ในอุปกรณ์
- การตรวจสอบสิทธิ์หรือเส้นทางการกำหนดเส้นทางที่ได้รับจาก DPC ที่ผู้ดูแลระบบไอทีขององค์กรใช้
บริการเครือข่ายหลักมีการเปลี่ยนแปลงต่อไปนี้ในโมดูล Tethering ใน Android 12:
- เพิ่ม
android.net.*
คลาส API สาธารณะหรือระบบส่วนใหญ่ให้กับโมดูล Tethering ขยายขอบเขตโมดูล 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 ออกจากโมดูล Tethering
Android 12 ย้ายโค้ดที่มีความสามารถต่อไปนี้ไปยังโมดูล Tethering:
- การรับคำขอจากแอพสำหรับการเชื่อมต่อเครือข่าย
- การรับคำขอจากระบบ (เช่น "วางแอปเหล่านี้บนชิ้นส่วนขององค์กร" เปิดตัวใน Android 12)
- การส่งคำขอจากระบบไปยังรหัสโทรศัพท์ซึ่งพยายามตั้งค่าเครือข่ายหรือสไลซ์โดยผ่าน HAL API และโมเด็ม
- แจ้ง netd วิธีกำหนดเส้นทางการรับส่งข้อมูลแบบต่อแอป (เปิดตัวใน Android 12)
- แจ้งแอปว่าเกิดอะไรขึ้นกับการรับส่งข้อมูลเครือข่ายผ่าน
ConnectivityManager
API เช่นNetworkCallback
,getActiveNetwork
,getNetworkCapabilities
การนำไปปฏิบัติ
หากต้องการรองรับการแบ่งส่วน 5G บนอุปกรณ์ อุปกรณ์จะต้องมีโมเด็มที่รองรับ IRadio 1.6 HAL ซึ่งมี setupDataCall_1_6
API API นี้ตั้งค่าการเชื่อมต่อข้อมูลและมีพารามิเตอร์ต่อไปนี้เพื่อรองรับการแบ่งส่วน 5G:
-
trafficDescriptor
: ระบุ Traffic Descriptor ที่ส่งไปยังโมเด็ม -
sliceInfo
: ระบุข้อมูลสำหรับชิ้นส่วนเครือข่ายที่จะใช้ในกรณีของการส่งมอบ EPDG เป็น 5G -
matchAllRuleAllowed
: ระบุว่าอนุญาตให้ใช้กฎ URSP ที่ตรงกันทั้งหมดที่เป็นค่าเริ่มต้นหรือไม่ Telephony ตั้งค่านี้เป็นจริงสำหรับเครือข่ายเริ่มต้น แต่ไม่ใช่สำหรับสไลซ์ กฎการจับคู่ทั้งหมดจะนำไปใช้กับเครือข่ายเริ่มต้น เมื่อแอปพลิเคชันร้องขอชิ้นส่วนเฉพาะที่ไม่พร้อมใช้งาน ชิ้นนั้นจะถูกรายงานว่าไม่พร้อมใช้งาน สำหรับแอประดับองค์กร เฟรมเวิร์กระบบโทรศัพท์สามารถถอยกลับไปเป็นเครือข่ายเริ่มต้นได้หากไม่มีเครือข่ายระดับองค์กร
โมเด็มยังต้องใช้ getSlicingConfig
API เว้นแต่จะได้รับการรายงานว่าไม่รองรับโดย getHalDeviceCapabilities
API
ข้อกำหนดขององค์กร
ข้อมูลต่อไปนี้จะอธิบายข้อกำหนดสำหรับองค์กรในการใช้การแบ่งส่วนเครือข่าย 5G บนอุปกรณ์ในการใช้งาน Android ระดับองค์กร
- ตรวจสอบให้แน่ใจว่าอุปกรณ์ที่มีการจัดการเต็มรูปแบบหรือของพนักงานที่ตั้งค่าโปรไฟล์งานนั้นรองรับ 5G SA และมีโมเด็มที่รองรับ
setupDataCall_1_6
API - ทำงานร่วมกับพันธมิตรผู้ให้บริการเกี่ยวกับการตั้งค่าและประสิทธิภาพสไลซ์หรือคุณลักษณะ SLA
เปิดใช้การแบ่งส่วน 5G ในอุปกรณ์ที่ตั้งค่าด้วยโปรไฟล์งาน
สำหรับอุปกรณ์ที่ตั้งค่าด้วยโปรไฟล์งาน การแบ่งส่วนเครือข่าย 5G จะปิดอยู่ตามค่าเริ่มต้นใน AOSP หากต้องการเปิดใช้การแบ่งส่วนเครือข่าย ผู้ดูแลระบบไอทีขององค์กรสามารถเปิดหรือปิดการกำหนดเส้นทางการรับส่งข้อมูลของแอปโปรไฟล์งานไปยังส่วนเครือข่ายองค์กรแบบรายพนักงานผ่าน EMM DPC ซึ่งใช้วิธีการ 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 Id + OS App Id type" ตัวอย่างเช่น ส่วน "ENTERPRISE" ต้องมีค่าเป็น 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
ค่านี้เป็นการต่อ OSId, ความยาวของ OSAppId ( 0x0A
) และ OSAppId สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทส่วนประกอบตัวอธิบายการจราจร โปรดดู 3GPP TS 24.526 ตาราง 5.2.1
ตารางต่อไปนี้อธิบายค่า OSAppId สำหรับหมวดหมู่สไลซ์ต่างๆ
หมวดหมู่ชิ้น | OSAppId | คำอธิบาย |
---|---|---|
องค์กร | 0x454E5445525052495345 | OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE" |
องค์กร2 | 0x454E544552505249534532 | OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE2" |
องค์กร3 | 0x454E544552505249534533 | OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE3" |
องค์กร4 | 0x454E544552505249534534 | OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE4" |
องค์กร5 | 0x454E544552505249534535 | OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "ENTERPRISE5" |
ซีบีเอส | 0x434253 | OSAppId เป็นการแสดงอาร์เรย์ไบต์ของสตริง "CBS" |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 | OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "PRIORITIZE_LATENCY" |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 | OSAppId คือการแสดงอาร์เรย์ไบต์ของสตริง "PRIORITIZE_BANDWIDTH" |
ตัวอย่างกฎ URSP
ตารางต่อไปนี้แสดงตัวอย่างกฎ URSP สำหรับองค์กร, CBS, เวลาแฝงต่ำ, แบนด์วิธสูง และการรับส่งข้อมูลเริ่มต้น
องค์กร 1
รองรับ Enterprise 1 ใน Android 12 ขึ้นไป ต่อไปนี้เป็นตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE1:
กฎ URSP #1 (องค์กร 1) | |
---|---|
ลำดับความสำคัญ | 1 (0x01) |
ตัวบ่งชี้การจราจร #1 | |
รหัส OS + ประเภทรหัสแอป OS | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
องค์ประกอบ #2: DNN | องค์กร |
คำอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
องค์ประกอบ #1: DNN | องค์กร |
องค์กร 2
การรองรับ Enterprise 2 พร้อมใช้งานใน Android 13 ขึ้นไป ต่อไปนี้เป็นตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE2:
กฎ URSP #2 (องค์กร 2) | |
---|---|
ลำดับความสำคัญ | 2 (0x02) |
ตัวบ่งชี้การจราจร #1 | |
รหัส OS + ประเภทรหัสแอป OS | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
องค์ประกอบ #2: DNN | องค์กร2 |
คำอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
องค์ประกอบ #1: DNN | องค์กร2 |
องค์กร 3
การรองรับ Enterprise 3 พร้อมใช้งานใน Android 13 ขึ้นไป ต่อไปนี้เป็นตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE3:
กฎ URSP #3 (องค์กร 3) | |
---|---|
ลำดับความสำคัญ | 3 (0x03) |
ตัวบ่งชี้การจราจร #1 | |
รหัส OS + ประเภทรหัสแอป OS | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
องค์ประกอบ #2: DNN | องค์กร3 |
คำอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
องค์ประกอบ #1: DNN | องค์กร3 |
องค์กร 4
การรองรับ Enterprise 4 พร้อมใช้งานใน Android 13 ขึ้นไป ต่อไปนี้เป็นตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE4:
กฎ URSP #4 (องค์กร 4) | |
---|---|
ลำดับความสำคัญ | 4 (0x04) |
ตัวบ่งชี้การจราจร #1 | |
รหัส OS + ประเภทรหัสแอป OS | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
องค์ประกอบ #2: DNN | องค์กร4 |
คำอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
องค์ประกอบ #1: DNN | องค์กร4 |
องค์กร 5
การรองรับ Enterprise 5 พร้อมใช้งานใน Android 13 ขึ้นไป ต่อไปนี้เป็นตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล ENTERPRISE5:
กฎ URSP #5 (องค์กร5) | |
---|---|
ลำดับความสำคัญ | 5 (0x05) |
ตัวบ่งชี้การจราจร #1 | |
รหัส OS + ประเภทรหัสแอป OS | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
องค์ประกอบ #2: DNN | องค์กร5 |
คำอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
องค์ประกอบ #1: DNN | องค์กร5 |
ซีบีเอส
รองรับ CBS ใน Android 13 ขึ้นไป ต่อไปนี้เป็นตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล CBS:
กฎ URSP #6 (CBS) | |
---|---|
ลำดับความสำคัญ | 6 (0x06) |
ตัวบ่งชี้การจราจร #1 | |
รหัส OS + ประเภทรหัสแอป OS | 0x97A498E3FC925C9489860333D06E4E4703434253 |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
องค์ประกอบ #2: DNN | ซีบีเอส |
คำอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
องค์ประกอบ #1: DNN | ซีบีเอส |
เวลาแฝงต่ำ
การรองรับเวลาแฝงต่ำมีให้ใช้งานใน Android 13 ขึ้นไป ต่อไปนี้เป็นตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล LOW_LATENCY:
กฎ URSP #7 (เวลาแฝงต่ำ) | |
---|---|
ลำดับความสำคัญ | 7 (0x07) |
ตัวบ่งชี้การจราจร #1 | |
รหัส OS + ประเภทรหัสแอป OS | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
องค์ประกอบ #2: DNN | เวลาแฝง |
คำอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
องค์ประกอบ #1: DNN | เวลาแฝง |
แบนด์วิธสูง
รองรับแบนด์วิดท์สูงใน Android 13 ขึ้นไป ต่อไปนี้เป็นตัวอย่างกฎ URSP สำหรับการรับส่งข้อมูล HIGH_BANDWIDTH:
กฎ URSP #8 (แบนด์วิธสูง) | |
---|---|
ลำดับความสำคัญ | 8 (0x08) |
ตัวบ่งชี้การจราจร #1 | |
รหัส OS + ประเภทรหัสแอป OS | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
องค์ประกอบ #2: DNN | แบนด์วิธ |
คำอธิบายการเลือกเส้นทาง #2 | |
ลำดับความสำคัญ | 2 (0x02) |
องค์ประกอบ #1: DNN | แบนด์วิธ |
ค่าเริ่มต้น
กฎ URSP #9 (ค่าเริ่มต้น) | |
---|---|
ลำดับความสำคัญ | 9 (0x09) |
ตัวบ่งชี้การจราจร #1 | |
ตรงทั้งหมด | ไม่มี |
คำอธิบายการเลือกเส้นทาง #1 | |
ลำดับความสำคัญ | 1 (0x01) |
องค์ประกอบ #1: S-NSSAI | SST:XX SD:ปปปปปป |
การทดสอบ
หากต้องการทดสอบการแบ่งส่วนเครือข่าย 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
กระบวนการให้สิทธิ มท.43
เมื่อผู้ใช้ร้องขอความสามารถเครือข่ายที่ได้รับการปรับปรุง เฟรมเวิร์ก Telephony จะร้องขอการกำหนดค่าการให้สิทธิ์การบริการสำหรับความสามารถระดับพรีเมียมที่ร้องขอ หากการตอบสนอง TS.43 ถูกต้อง เฟรมเวิร์ก Telephony จะใช้ฟิลด์จากการตอบกลับ HTTP เพื่อขับเคลื่อนคำขอซื้อ
ฟิลด์การซื้อชิ้นส่วน
การกำหนดค่าการให้สิทธิ์ TS.43 ประกอบด้วยฟิลด์การซื้อส่วนต่อไปนี้:
- สถานะการให้สิทธิ์
คีย์:
EntitlementStatus
ประเภท:
int
ค่าที่รองรับ:
0
(ปิดใช้งาน),1
(เปิดใช้งาน),2
(เข้ากันไม่ได้),3
(การจัดเตรียม),4
(รวมอยู่ด้วย)- สถานะการจัดสรร
คีย์:
ProvStatus
ประเภท:
int
ค่าที่รองรับ:
0
(ไม่ได้จัดเตรียม),1
(จัดเตรียม),2
(ไม่มี),3
(อยู่ระหว่างดำเนินการ)
กรอบงาน Telephony ใช้การรวมกันของสถานะการให้สิทธิ์และสถานะการเตรียมใช้งานเพื่อกำหนดสถานะการซื้อส่วนปัจจุบัน ผลลัพธ์อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้:
-
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
(ไม่ได้จัดเตรียม) เฟรมเวิร์ก Telephony จะแสดงการแจ้งเตือนการขายต่อยอดให้กับผู้ใช้เพื่อซื้อการเพิ่มผ่าน webview ของผู้ให้บริการ ตารางต่อไปนี้อธิบายลักษณะการทำงานของเฟรมเวิร์ก Telephony สำหรับการรวมค่าสถานะการจัดเตรียมและการให้สิทธิ์ที่แตกต่างกัน
สถานะการจัดสรร | |||||
---|---|---|---|---|---|
ไม่ได้จัดเตรียมไว้ ( 0 ) | จัดสรรแล้ว ( 1 ) 1 ) | ไม่สามารถใช้ได้ ( 2 ) | อยู่ระหว่างดำเนินการ ( 3 ) | ||
สถานะการให้สิทธิ์ | ปิดการใช้งาน ( 0 ) | ล้มเหลว | ล้มเหลว | ล้มเหลว | ล้มเหลว |
เปิดใช้งาน ( 1 ) | แสดงมุมมองเว็บ | ซื้อแล้ว | ซื้อแล้ว | กำลังดำเนินการ | |
เข้ากันไม่ได้ ( 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
หรือหากผู้ใช้ยกเลิกหรือปิดการแจ้งเตือน ตัวจับเวลา Backoff นี้จะเริ่มขึ้น ขณะที่ตัวจับเวลานี้ทำงานอยู่ คำขอซื้อจะล้มเหลวด้วยผลลัพธ์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
หากเครือข่ายไม่สามารถตั้งค่าการกำหนดค่าการแบ่งส่วนได้ทันเวลา แอปสามารถขอซื้อความสามารถระดับพรีเมียมได้อีกครั้ง ระบบโทรศัพท์จะไม่ถือว่าการซื้อเสร็จสมบูรณ์จนกว่าจะส่งการกำหนดค่าการแบ่งส่วนที่เกี่ยวข้อง ไม่ว่าผู้ใช้จะชำระเงินให้กับผู้ให้บริการหรือไม่ก็ตาม
อินเตอร์เฟซจาวาสคริปต์
เมื่อผู้ใช้คลิกการแจ้งเตือนการเพิ่มประสิทธิภาพเครือข่าย ออบเจ็กต์ 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
ไปยังอุปกรณ์ของผู้ใช้