ตั้งแต่ Android 12 เป็นต้นไป Android จะรองรับการกำหนดค่าการให้สิทธิ์บริการ TS.43 ซึ่งเป็นข้อกำหนดของ GSMA ที่กําหนดขั้นตอนการตรวจสอบสิทธิ์เพื่อเปิดใช้งานบริการต่างๆ ซึ่งรวมถึง Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), การเปิดใช้งานบริการในอุปกรณ์ (ODSA) ของอุปกรณ์ที่ใช้ร่วมกับ eSIM (เชื่อมโยงกับอุปกรณ์ที่ขอ) และข้อมูลแพ็กเกจอินเทอร์เน็ต
Android มีฟีเจอร์การให้สิทธิ์บริการ IMS เพื่อรองรับข้อกำหนดนี้ ซึ่งช่วยให้ผู้ให้บริการแจ้งสถานะบริการเครือข่าย IP Multimedia Subsystem (IMS) ไปยังอุปกรณ์เคลื่อนที่ได้ ฟีเจอร์การให้สิทธิ์นี้ช่วยให้อุปกรณ์สามารถค้นหาเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการตามที่ระบุไว้ในข้อกำหนด GSMA TS.43 สำหรับสถานะการให้สิทธิ์ IMS โดยใช้การตรวจสอบสิทธิ์ EAP-AKA โดยไม่ต้องให้ผู้ใช้ป้อนข้อมูลเข้าสู่ระบบด้วยตนเอง
ผู้ให้บริการที่มีเซิร์ฟเวอร์การให้สิทธิ์ IMS สามารถใช้ฟีเจอร์การให้สิทธิ์บริการ IMS เพื่อจัดสรรบริการได้ การใช้ฟีเจอร์นี้มีประโยชน์ดังต่อไปนี้
- ลดต้นทุนการทดสอบและการรับรองสำหรับผู้ให้บริการ เนื่องจากฟีเจอร์การให้สิทธิ์นี้ใช้ได้กับผลิตภัณฑ์และ OEM หลายรายการ
- ลดค่าใช้จ่ายในการพัฒนาสำหรับผู้ผลิตอุปกรณ์ผ่านแอป Android มาตรฐาน
- อนุญาตให้ผู้ผลิตอุปกรณ์และผู้ให้บริการมีส่วนร่วมในโค้ดของฟีเจอร์เนื่องจากฟีเจอร์นี้เป็นโอเพนซอร์ส
- จัดการที่อยู่สำหรับกรณีฉุกเฉินสำหรับผู้ให้บริการในอเมริกาเหนือ
พาร์ทเนอร์ GMS:
สำหรับผู้ให้บริการที่ไม่รองรับข้อกำหนด TS.43 พาร์ทเนอร์ GMS สามารถใช้แอปการเปิดใช้งาน WFC ซึ่งพร้อมให้บริการบนอุปกรณ์ GMS เป็นแอปแบบไม่ได้รวมกลุ่ม เพื่อจัดสรรบริการเครือข่าย IMS
หากมีคำขอฟีเจอร์ที่เกี่ยวข้องกับฟีเจอร์การมีสิทธิ์ใช้บริการ IMS โปรดติดต่อตัวแทนของ Google หรือส่งอีเมลไปที่ gms-connectivity-apps@google.com
สถาปัตยกรรม
รูปภาพต่อไปนี้อธิบายสถาปัตยกรรมและลักษณะการทํางานของฟีเจอร์การให้สิทธิ์บริการ IMS
รูปที่ 1 สถาปัตยกรรมฟีเจอร์การให้สิทธิ์ TS.43
ดังที่แสดงในรูปที่ 1 สถาปัตยกรรมของฟีเจอร์การมีสิทธิ์ใช้บริการ IMS ประกอบด้วยคอมโพเนนต์ต่อไปนี้
service_entitlement
ไลบรารีแบบคงที่ของ TS.43 Service API: ไลบรารีนี้ใช้ข้อกำหนด TS.43 โต้ตอบกับเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ และแสดง API ที่แสดงต่อแอปสำหรับกรณีการใช้งาน TS.43 แต่ละรายการImsServiceEntitlement
แอปไคลเอ็นต์: แอปนี้ใช้ TS.43 Service API แอปใช้องค์ประกอบ UI ซึ่งรวมถึงเว็บวิวสำหรับแสดงผลพอร์ทัลบริการของผู้ให้บริการเพื่อให้ผู้ใช้เปิดใช้งานบริการ และโต้ตอบกับคอมโพเนนต์อื่นๆ ของ Android เพื่อจัดการประสบการณ์ของผู้ใช้ตั้งแต่ต้นจนจบโปรดดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่า Android ให้ทำงานร่วมกับเซิร์ฟเวอร์การให้สิทธิ์ตาม TS.43 ของผู้ให้บริการที่หัวข้อ ImsServiceEntitlement App
เส้นที่มีหมายเลขในรูปที่ 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
เนื่องจากไม่มี API ของ Android 12 คุณจึงพอร์ต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
พาร์ทเนอร์ GMS: ต่อไปนี้คือผู้ให้บริการเซิร์ฟเวอร์การให้สิทธิ์ TS.43 ที่ผ่านการทดสอบกับไลบรารี service_entitlement ใน Android 12
- Ericsson
- HPE
- Nokia
แอป ImsServiceEntitlement
โดยค่าเริ่มต้น Android จะรวมแอป ImsServiceEntitlement
ที่ติดตั้งไว้ในพาร์ติชันผลิตภัณฑ์เป็นแอปที่มีสิทธิ์ หากต้องการกำหนดค่าแอป ให้ใช้คีย์ CarrierConfig ต่อไปนี้
คีย์ | ค่า |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
URL ของเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ โดยต้องใส่คำนำหน้า https:// |
KEY_FCM_SENDER_ID_STRING |
รหัสผู้ส่ง FCM ของผู้ให้บริการ อย่าตั้งค่านี้หากผู้ให้บริการขนส่งไม่กำหนดให้ใช้ FCM |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
ตั้งค่าเป็น true หากผู้ให้บริการกำหนดให้ผู้ใช้ต้องลงชื่อสมัครใช้บริการ VoWiFi ผ่าน UI ของเว็บพอร์ทัล เช่น การยอมรับข้อกำหนดและเงื่อนไขหรือการป้อนที่อยู่สำหรับกรณีฉุกเฉินโดยทั่วไปแล้ว ผู้ให้บริการในอเมริกาเหนือจะกำหนดให้ต้องระบุข้อมูลนี้ |
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
- สหรัฐอเมริกา: CSpire, US Cellular, Cellcom
- ฝรั่งเศส: Orange
UI ของระบบเพิ่มเติมสำหรับการเตรียมความพร้อม IMS
ส่วนนี้อธิบายวิธีที่ OEM สามารถรองรับองค์ประกอบ UI ของระบบเพิ่มเติมที่เกี่ยวข้องกับการจัดสรรบริการ IMS (เช่น เมื่อแสดงการแจ้งเตือนเมื่อจัดสรร VoWiFi)
แอป ImsServiceEntitlement
จะตั้งค่าสถานะการจัดสรร VoWiFi ในแพลตฟอร์มโดยใช้ ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
value)
API ของระบบ นอกจากนี้ 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