ตั้งแต่ Android 12 ขึ้นไป Android ได้รวมการรองรับ TS.43 Service Entitlement Configuration ซึ่งเป็นข้อกำหนด GSMA ที่กำหนดขั้นตอนการตรวจสอบสิทธิ์สำหรับการเปิดใช้งานบริการต่างๆ ซึ่งรวมถึง Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE) , SMS over IP (SMSoIP), การเปิดใช้งานบริการบนอุปกรณ์ (ODSA) ของอุปกรณ์คู่หู eSIM (ที่เกี่ยวข้องกับอุปกรณ์ที่ร้องขอ) และข้อมูลแผนข้อมูล
เพื่อสนับสนุนข้อกำหนดนี้ Android จึงมีคุณลักษณะการให้สิทธิ์บริการ IMS ที่ช่วยให้ผู้ให้บริการแจ้งอุปกรณ์เคลื่อนที่เกี่ยวกับสถานะของบริการเครือข่ายระบบย่อย IP มัลติมีเดีย (IMS) คุณสมบัติการให้สิทธิ์นี้ทำให้อุปกรณ์สามารถสืบค้นเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการตามที่กำหนดโดยข้อกำหนด GSMA TS.43 สำหรับสถานะการให้สิทธิ์ IMS โดยใช้ การตรวจสอบสิทธิ์ EAP-AKA โดยไม่ต้องให้ผู้ใช้ป้อนข้อมูลประจำตัวใด ๆ ด้วยตนเอง
ผู้ให้บริการที่มีเซิร์ฟเวอร์การให้สิทธิ์ IMS สามารถใช้คุณลักษณะการให้สิทธิ์บริการ IMS สำหรับการให้บริการได้ การใช้คุณลักษณะนี้ให้ประโยชน์ดังต่อไปนี้:
- ลดต้นทุนการทดสอบและการรับรองสำหรับผู้ให้บริการเนื่องจากคุณลักษณะการให้สิทธิ์นี้สามารถใช้กับผลิตภัณฑ์และ OEM หลายรายการได้
- ลดค่าใช้จ่ายในการพัฒนาสำหรับผู้ผลิตอุปกรณ์ผ่านแอป Android มาตรฐาน
- อนุญาตให้ผู้ผลิตอุปกรณ์และผู้ให้บริการสนับสนุนโค้ดสำหรับฟีเจอร์นี้เนื่องจากฟีเจอร์นี้เป็นโอเพ่นซอร์ส
- ให้การจัดการที่อยู่ฉุกเฉินสำหรับผู้ให้บริการในอเมริกาเหนือ
สถาปัตยกรรม
รูปต่อไปนี้อธิบายสถาปัตยกรรมและลักษณะการทำงานของคุณลักษณะการให้สิทธิ์บริการ IMS
รูปที่ 1 สถาปัตยกรรมคุณลักษณะการให้สิทธิ์ TS.43
ดังแสดงในรูปที่ 1 สถาปัตยกรรมของคุณลักษณะการให้สิทธิ์บริการ IMS ประกอบด้วยส่วนประกอบต่อไปนี้:
-
service_entitlement
ไลบรารีแบบคงที่ของบริการ API TS.43 : ไลบรารีนี้ใช้ข้อกำหนด TS.43 โต้ตอบกับเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ และเปิดเผย API ที่เชื่อมต่อกับแอปสำหรับกรณีการใช้งาน TS.43 แต่ละรายการ แอปไคลเอ็นต์
ImsServiceEntitlement
: แอปนี้ใช้ TS.43 Service API แอปใช้องค์ประกอบ UI รวมถึง webviews เพื่อแสดงผลพอร์ทัลบริการของผู้ให้บริการเพื่อให้ผู้ใช้สามารถเปิดใช้งานบริการและโต้ตอบกับส่วนประกอบ Android อื่น ๆ เพื่อจัดการประสบการณ์ผู้ใช้ตั้งแต่ต้นจนจบสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่า Android ให้ทำงานกับเซิร์ฟเวอร์การให้สิทธิ์ที่ใช้ TS.43 ของผู้ให้บริการ โปรดดูที่ แอป ImsServiceEntitlement
เส้นลำดับเลขในรูปที่ 1 แสดงให้เห็นว่าส่วนประกอบของคุณลักษณะการให้สิทธิ์บริการ IMS สื่อสารกันอย่างไร ข้อมูลต่อไปนี้จะอธิบายแต่ละขั้นตอนตามที่มีป้ายกำกับ:
(1) แอปไคลเอนต์เรียกใช้ API บริการ TS.43 เพื่อเริ่มต้นคำขอสิทธิ์การบริการ
(2) API บริการ TS.43 ส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการเพื่อเริ่มต้นการท้าทาย EAP-AKA
(3) API บริการ TS.43 เรียกใช้ API ระบบโทรศัพท์ (เช่น getIccAuthentication
) เพื่อตอบสนองต่อความท้าทาย EAP-AKA ให้เสร็จสมบูรณ์
(4) บริการ TS.43 ได้รับสิทธิ์การบริการหรือข้อมูลการกำหนดค่าจากเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ หลังจากการตรวจสอบการตอบสนอง EAP-AKA แล้ว
(5) บริการ TS.43 ส่งคืนสิทธิ์การบริการหรือข้อมูลการกำหนดค่าไปยังแอปไคลเอนต์
(6) แอปไคลเอนต์จัดการข้อมูลและเลือกแสดงพอร์ทัลบริการของผู้ให้บริการเพื่อให้ผู้ใช้เปิดใช้งานบริการให้เสร็จสิ้น
บูรณาการ
ส่วนนี้อธิบายกระบวนการในการรวมไลบรารี service_entitlement
และแอป ImsServiceEntitlement
เนื่องจากไม่มีการพึ่งพา Android 12 API ไลบรารี service_entitlement
และแอป ImsServiceEntitlement
จึงสามารถแบ็คพอร์ตไปยังแพลตฟอร์ม Android รุ่นเก่าได้
ไลบรารี service_entitlement
เนื่องจากไลบรารี service_entitlement
เชื่อมโยงเข้ากับ ImsServiceEntitlement app
แบบคงที่ จึงไม่จำเป็นต้องมีขั้นตอนเพิ่มเติมในการรวมไลบรารีเข้ากับแอป ImsServiceEntitlement
ไลบรารี service_entitlement
สามารถผสานรวมกับแอปของคุณเองสำหรับกรณีการใช้งาน TS.43 เช่น แผนข้อมูลและ ODSA ไลบรารียังสามารถรวมเข้ากับแอปสำหรับกรณีการใช้งานที่ไม่ใช่ TS.43 ตามโปรโตคอล EAP-AKA
ข้อมูลต่อไปนี้จะอธิบาย API ที่จะใช้สำหรับกรณีการใช้งานดังกล่าว:
- แอป TS.43 ที่ใช้โปรโตคอล TS.43 HTTP ที่นำมาใช้ในไลบรารี: ใช้ API ในคลาส
ServiceEntitlement
- แอปที่ไม่ใช่ TS.43 ที่ใช้โปรโตคอล EAP-AKA ที่ใช้งานในไลบรารี: ใช้ API ที่เปิดเผยในคลาส
EapAkaHelper
แอป ImsServiceEntitlement
ตามค่าเริ่มต้น Android จะรวมแอป ImsServiceEntitlement
ที่ติดตั้งไว้ในพาร์ติชันผลิตภัณฑ์เป็นแอปที่มีสิทธิ์ หากต้องการกำหนดค่าแอป ให้ใช้คีย์ CarrierConfig ต่อไปนี้:
สำคัญ | ค่า |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING | URL เซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ ต้องใส่คำนำหน้า https:// |
KEY_FCM_SENDER_ID_STRING | ID ผู้ส่ง FCM ของผู้ให้บริการ อย่าตั้งค่านี้หากผู้ให้บริการไม่ต้องการ FCM |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL | ตั้งค่าเป็น true หากผู้ให้บริการต้องการ UI ของเว็บพอร์ทัลเพื่อให้ผู้ใช้สมัครใช้บริการ VoWiFi เช่น ยินยอมตามข้อกำหนดและเงื่อนไข หรือกรอกที่อยู่ฉุกเฉินโดยทั่วไปผู้ให้บริการในอเมริกาเหนือจะกำหนดขั้นตอนนี้ |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING | ตั้งค่าเป็น com.android.imsserviceentitlement/.WfcActivationActivity หาก KEY_SHOW_VOWIFI_WEBVIEW_BOOL เป็น true |
KEY_IMS_PROVISIONING_BOOL | ตั้งค่าเป็น true หากผู้ให้บริการต้องการการจัดสรรเครือข่ายบริการ IMS (VoLTE/VoWiFi/SMSoIP) ในเบื้องหลังสิ่งนี้จำเป็นสำหรับผู้ให้บริการบางรายในยุโรป |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL | ตั้งค่าเป็น true หาก KEY_IMS_PROVISIONING_BOOL เป็น true |
การรับส่งข้อมูล HTTP ไปยังเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการและเว็บพอร์ทัลจะส่งผ่านเครือข่ายเริ่มต้น เช่น ข้อมูลมือถือเริ่มต้นหรือ Wi-Fi
พันธมิตร GMS: ผู้ให้บริการต่อไปนี้รองรับแอปให้สิทธิ์ TS.43 ใน Android 12 ตามข้อกำหนด TS.43 v5.0:
- สหรัฐฯ: CSpaire, US Cellular, Cellcom
- ฝรั่งเศส: สีส้ม
UI ระบบเพิ่มเติมสำหรับการจัดเตรียม IMS
ส่วนนี้อธิบายว่า OEM สามารถรองรับองค์ประกอบ UI ของระบบเพิ่มเติมที่เกี่ยวข้องกับการให้บริการ IMS ได้อย่างไร (เช่น เมื่อแสดงการแจ้งเตือนเมื่อมีการจัดเตรียม VoWiFi)
แอป ImsServiceEntitlement
ตั้งค่าสถานะการจัดเตรียม VoWiFi ลงในแพลตฟอร์มโดยใช้ API ระบบ ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value)
API นี้ยังใช้สำหรับ VoLTE (พร้อม KEY_VOLTE_PROVISIONING_STATUS
) และ SMSoIP (พร้อม KEY_SMS_OVER_IP_ENABLED
)
UI ของระบบสามารถอ่านสถานะการเตรียมใช้งานโดยใช้ getProvisioningIntValue
หรือโดยการลงทะเบียนการโทรกลับเพื่อตรวจสอบการเปลี่ยนแปลงสถานะการเตรียมใช้งานผ่าน registerProvisioningChangedCallback
การเอาชนะการกำหนดค่าสำหรับการทดสอบ
ใช้ขั้นตอนต่อไปนี้เพื่อปรับเปลี่ยนการทำงานของแอป ImsServiceEntitlement
ชั่วคราวเพื่อการทดสอบ สำหรับรายละเอียดเกี่ยวกับวิธีแทนที่การกำหนดค่าของผู้ให้บริการ โปรดดูที่ การแทนที่การกำหนดค่าของผู้ให้บริการ
ข้ามขั้นตอนการสมัคร VoWiFi
หากต้องการข้ามขั้นตอนการสมัคร VoWiFi โดยอนุญาตให้เปิด VoWiFi ได้โดยตรง ให้แทนที่การกำหนดค่าของผู้ให้บริการ KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
และตั้งค่าเป็นสตริงว่าง
ข้ามการจัดเตรียม IMS
หากต้องการข้ามการจัดเตรียม IMS ทำให้บริการ IMS พร้อมใช้งาน และอนุญาตให้ผู้ใช้สามารถเปิดบริการดังกล่าวได้โดยไม่ต้องจัดเตรียมเครือข่าย ให้แทนที่การกำหนดค่าของผู้ให้บริการ KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
และตั้งค่าเป็น false
การเปลี่ยน URL เซิร์ฟเวอร์การให้สิทธิ์
หากต้องการเปลี่ยน URL ของเซิร์ฟเวอร์การให้สิทธิ์ ให้แทนที่การกำหนดค่าของผู้ให้บริการ KEY_ENTITLEMENT_SERVER_URL_STRING
และตั้งค่าเป็นสตริง URL ที่คาดหวัง คุณต้องใส่คำนำหน้า https://
การเอาชนะการกำหนดค่าของผู้ให้บริการ
จาก Android 11 คำสั่งแทนที่การกำหนดค่าของผู้ให้บริการนั้นมีอยู่ในตัวและพร้อมใช้งานโดยมีสิทธิ์การใช้งานรูท
คำสั่งต่อไปนี้เป็นตัวอย่างของวิธีแทนที่คีย์การกำหนดค่าของผู้ให้บริการ carrier_volte_provisioning_required_bool
และตั้งค่าเป็น false
คุณสามารถรันคำสั่งได้หลายครั้งเพื่อแทนที่การกำหนดค่าหลายรายการ
adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false
หากต้องการล้างการแทนที่ทั้งหมด ให้ใช้คำสั่งต่อไปนี้:
adb shell cmd phone cc clear-values
หากต้องการข้อมูลเพิ่มเติม ให้รันคำสั่งต่อไปนี้:
adb shell cmd phone cc