Android 12 รองรับรูปแบบการลงทะเบียนแบบครั้งเดียวสำหรับให้บริการฟีเจอร์ MMTEL และ RCS รูปแบบนี้ช่วยให้อุปกรณ์จัดการฟีเจอร์ IMS ทั้งหมดได้ผ่านการลงทะเบียน IMS ครั้งเดียวที่ ImsService ของอุปกรณ์ให้ไว้ และเพื่อปฏิบัติตามข้อกำหนดที่ผู้ให้บริการโทรคมนาคมบางรายกำหนด เมื่อเทียบกับรูปแบบการลงทะเบียนแบบคู่ที่จัดการการลงทะเบียน IMS หลายรายการในอุปกรณ์เครื่องเดียว การลงทะเบียนครั้งเดียวจะช่วยลดการรับส่งข้อมูลในเครือข่ายของผู้ให้บริการและเพิ่มความน่าเชื่อถือ
Android 12 รองรับรูปแบบการลงทะเบียนแบบครั้งเดียวนี้ผ่านสถาปัตยกรรมที่มีชุด API ซึ่งช่วยให้สแต็กโทรศัพท์ของ AOSP จัดการทั้งฟีเจอร์ MMTEL ที่ให้บริการโดย ImsService
และฟีเจอร์ RCS ที่ให้บริการโดยแอปรับส่งข้อความ RCS ที่ผู้ใช้เลือกได้ หากต้องการรองรับการลงทะเบียน IMS แบบครั้งเดียว ผู้ผลิตอุปกรณ์และผู้ให้บริการ SoC ต้องใช้ API เหล่านี้เพื่อเปิดใช้ฟีเจอร์ RCS ในแอปรับส่งข้อความ RCS ที่ผู้ใช้เลือก
รูปที่ 1 แสดงสแต็ก IMS ของอุปกรณ์เมื่อใช้รูปแบบการลงทะเบียน IMS แบบครั้งเดียว แอป IMS ทั้งหมดใช้ ImsService เริ่มต้นของอุปกรณ์สำหรับฟีเจอร์ MMTEL และ RCS ผ่านการลงทะเบียน IMS ครั้งเดียว ซึ่งรวมถึงการจัดสรร การส่งต่อข้อความ SIP และการแลกเปลี่ยนความสามารถของผู้ใช้ RCS
รูปที่ 1 สถาปัตยกรรมรูปแบบการลงทะเบียนแบบรวมครั้งเดียว
Android 11 และต่ำกว่ารองรับเฉพาะรูปแบบการลงทะเบียนแบบคู่สำหรับการนำเสนอฟีเจอร์ MMTEL และ RCS โดยที่ MMTEL ให้บริการโดย ImsService ของอุปกรณ์ และฟีเจอร์ RCS จะใช้ร่วมกับบริการดังกล่าวและจัดการสแต็ก IMS ของตนเอง รวมถึงการเชื่อมต่อกับเครือข่ายของผู้ให้บริการอย่างอิสระ
รูปที่ 2 แสดงสถาปัตยกรรมของรูปแบบการจดทะเบียนแบบคู่ ในรูปแบบนี้ แอปแต่ละแอปมีหน้าที่รับผิดชอบในการเชื่อมต่อกับเครือข่ายของผู้ให้บริการและสร้างการลงทะเบียน IMS สำหรับฟีเจอร์ MMTEL และ RCS ImsService ของอุปกรณ์จะใช้ MMTEL, ใช้การเชื่อมต่อข้อมูล IMS ของอุปกรณ์กับเครือข่ายของผู้ให้บริการ และทำงานแยกจากแอป RCS อื่นๆ
รูปที่ 2 สถาปัตยกรรมรูปแบบการลงทะเบียนแบบคู่
IMS Single Registration API
อุปกรณ์ที่ทำงานร่วมกับผู้ให้บริการที่ต้องใช้การลงทะเบียน IMS แบบครั้งเดียวต้องรองรับ API การลงทะเบียน IMS แบบครั้งเดียวและกำหนดฟีเจอร์ Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION
รูปที่ 3 แสดง API ที่รองรับการลงทะเบียน IMS แบบครั้งเดียว
รูปที่ 3 แพลตฟอร์ม API ระดับสูงที่รองรับการลงทะเบียน IMS แบบครั้งเดียว
อุปกรณ์ Android ที่รองรับการลงทะเบียน IMS ครั้งเดียวซึ่งเป็นส่วนหนึ่งของสแต็กโทรศัพท์ AOSP จะต้องรองรับ AOSP API ทั้งหมดที่อธิบายไว้ในตารางต่อไปนี้
API Surface Area | RCS App API | IMS API ของผู้ให้บริการ | คำอธิบาย |
---|---|---|---|
การจัดสรร RCS | ProvisioningManager | ImsConfigImplBase | อนุญาตให้ OEM หรือผู้ให้บริการระบุแอปเพื่ออัปเดตสถานะการจัดสรร RCS หากผู้ให้บริการใช้กลไกการให้สิทธิ์ของผู้ให้บริการที่เป็นกรรมสิทธิ์ นอกจากนี้ ImsService ยังต้องรองรับ AutoConfigurationServer (ACS) มาตรฐานสำหรับการเตรียมอุปกรณ์ให้กับผู้ให้บริการที่ไม่ใช้กลไกที่เป็นกรรมสิทธิ์ด้วย |
การส่งต่อข้อความ SIP | SipDelegateManager | SipTransportImplBase | อนุญาตให้แอป RCS เชื่อมโยงแท็กฟีเจอร์ RCS ที่เฉพาะเจาะจงกับอุปกรณ์ ImsService ก่อน จากนั้นจึงส่งและรับข้อความ SIP และการอัปเดตการลงทะเบียน IMS ที่เชื่อมโยงกับแท็กฟีเจอร์ RCS เหล่านั้น |
การแจ้งเตือนสำหรับผู้ให้บริการโดยเฉพาะ | ConnectivityManager | DataCallResponse | อนุญาตให้แอปฟังการแจ้งเตือน QoS ในซ็อกเก็ตที่เชื่อมโยงกับพอร์ตในเครื่องที่เฉพาะเจาะจง |
การตรวจสอบสิทธิ์ GBA | bootstrapAuthenticationRequest | GbaService | อนุญาตให้แอป RCS ตรวจสอบสิทธิ์กับเครือข่ายและคีย์เข้าถึงที่ใช้สำหรับฟีเจอร์ RCS เช่น การโอนไฟล์ |
การแลกเปลี่ยนความสามารถของผู้ใช้ RCS | ImsRcsManager | RcsCapabilityExchangeImplBase | ช่วยให้ AOSP สามารถส่งความสามารถของ MMTEL และ RCS ไปยัง ImsService ของผู้ให้บริการเพื่อให้เผยแพร่ภายใต้เอนทิตีเดียวกันไปยังเครือข่ายสำหรับการแลกเปลี่ยนความสามารถของผู้ใช้ RCS ได้ และยังอนุญาตให้แอปอื่นๆ ที่สนใจความสามารถ RCS ของรายชื่อติดต่ออย่างน้อย 1 รายสามารถค้นหาเครือข่ายเพื่อดูความสามารถ RCS ของรายชื่อติดต่อได้ |
ความปลอดภัยและสิทธิ์
Android 12 เปิดตัวสิทธิ์ต่อไปนี้เพื่อให้การเข้าถึงเครือข่ายของผู้ให้บริการและข้อมูลของผู้ใช้เป็นไปอย่างปลอดภัย
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
แอปรับส่งข้อความที่มีฟีเจอร์ RCS จะต้องกำหนดสิทธิ์ android.permission.PERFORM_IMS_SINGLE_REGISTRATION
เงื่อนไขต่อไปนี้ต้องตรงตามข้อกำหนดเพื่อให้ได้รับสิทธิ์นี้
- แอปต้องติดตั้งเป็นแอปที่มีสิทธิ์ ซึ่งหมายความว่าแอปได้รับการติดตั้งไว้ล่วงหน้าในอุปกรณ์และได้รับอนุญาตให้เข้าถึงสิทธิ์ที่มีสิทธิ์
- คุณต้องตั้งค่าแอปเป็นบทบาท SMS เริ่มต้นของผู้ใช้โดยใช้
RoleManager
หากไม่เป็นไปตามเงื่อนไขทั้ง 2 ข้อนี้ แอปจะถูกปฏิเสธไม่ให้เข้าถึงสิทธิ์ android.permission.PERFORM_IMS_SINGLE_REGISTRATION
ซึ่งหมายความว่าแอปของบุคคลที่สามไม่ได้รับอนุญาตให้เข้าถึง RCS Single Registration API เนื่องจากต้องมีการรับรองจากผู้ให้บริการในอุปกรณ์
สิทธิ์ android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
เมื่อให้สิทธิ์แก่แอปที่มีสิทธิ์ READ_CONTACTS ด้วย จะอนุญาตให้แอปขอความสามารถ RCS ของหมายเลขโทรศัพท์โดยใช้ RcsUceAdapter
เงื่อนไขต่อไปนี้ต้องตรงตามข้อกำหนดจึงจะให้สิทธิ์นี้ได้
- แอปต้องติดตั้งเป็นแอปที่มีสิทธิ์ ซึ่งหมายความว่าแอปได้รับการติดตั้งไว้ล่วงหน้าในอุปกรณ์และได้รับอนุญาตให้เข้าถึงสิทธิ์ที่มีสิทธิ์
แอปต้องได้รับการกำหนดบทบาทอย่างใดอย่างหนึ่งต่อไปนี้
RoleManager
- แอปรับส่งข้อความเริ่มต้น: ตั้งค่าโดยผู้ใช้
- แอปโทรศัพท์เริ่มต้น: ตั้งค่าโดยผู้ใช้
- แอปรายชื่อติดต่อเริ่มต้น: บทบาทที่เปิดตัวใน Android 12 ซึ่งอนุญาตให้ OEM กําหนดชื่อแพ็กเกจผ่านค่าการวางซ้อนของอุปกรณ์
config_systemContacts
ซึ่งต้องสอดคล้องกับแอปรายชื่อติดต่อของอุปกรณ์ จากนั้นแอปดังกล่าวจะได้รับบทบาทรายชื่อติดต่อ
หากต้องการเข้าถึง APN ของ IMS โดยใช้ ConnectivityManager
เพื่อตั้งค่าและจัดการการรับส่งข้อมูล แอปจะต้องขอสิทธิ์ android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS
ด้วย
ตัวอย่างและแหล่งที่มา
Android มีแอปใน AOSP ที่ใช้แอปรับส่งข้อความทดสอบที่รองรับการรับส่งข้อความ RCS ขั้นพื้นฐานเพื่อวัตถุประสงค์ในการทดสอบและการพัฒนา คุณดาวน์โหลดแอปได้
ที่
testapps/TestRcsApp
เมื่อติดตั้งแอปในอุปกรณ์แล้ว ผู้ใช้จะตั้งค่าแอปเป็นแอปรับส่งข้อความเริ่มต้นได้ และจะมีสิทธิ์ที่จำเป็นในการเข้าถึง IMS Single Registration API
นอกจากนี้ Android ยังมีตัวอย่างการใช้งาน ImsService สำหรับ RCS ด้วย ดูซอร์สโค้ดได้ที่ /testapps/ImsTestService
การใช้งาน
โปรดดูรายละเอียดการติดตั้งใช้งานเพิ่มเติมโดยดาวน์โหลดการลงทะเบียน IMS แบบครั้งเดียวใน Android
การตรวจสอบความถูกต้อง
หากต้องการตรวจสอบการติดตั้งใช้งานการจดทะเบียนครั้งเดียวของ IMS ให้ทำดังนี้
- ตรวจสอบว่าชุดทดสอบ CtsTelephonyTestCases ผ่านชุดทดสอบ CTS
- ติดตั้งและเรียกใช้ TestRcsApp เพื่อเรียกใช้กรณีทดสอบการลงทะเบียนครั้งเดียวพื้นฐานระหว่างการผสานรวม
- ผ่านการรับรองของผู้ให้บริการสำหรับกรณีทดสอบการลงทะเบียน IMS แบบครั้งเดียว