บริการเลือกโดเมน

สำหรับอุปกรณ์ที่ใช้ Android 15 ขึ้นไป คุณสามารถ ใช้การเลือกโดเมน ระหว่างบริการ IMS และบริการเดิมผ่านวงจรที่สลับเครือข่ายโดยใช้ API ระบบ DomainSelectionService DomainSelectionService เป็นอินเทอร์เฟซที่กำหนดมาอย่างดีระหว่างแพลตฟอร์ม Android กับผู้ให้บริการ การเลือกโดเมน อินเทอร์เฟซนี้ช่วยให้ผู้ให้บริการติดตั้งใช้งาน ให้ข้อมูลการส่งสัญญาณ เช่น โดเมนที่โทรออกและส่ง SMS และกำหนดประเภทเครือข่ายในการสแกนเครือข่ายไปยังแพลตฟอร์ม

สถาปัตยกรรมการเลือกโดเมน

รูปที่ 1 แผนภาพสถาปัตยกรรมสำหรับฟีเจอร์การเลือกโดเมน

ตัวอย่างและแหล่งที่มา

Android ได้ติดตั้งใช้งานข้อมูลอ้างอิงสำหรับฟีเจอร์การเลือกโดเมนใน AOSP ที่ TelephonyDomainSelectionService หากต้องการทราบข้อมูลเรื่องการตั้งค่าแบบละเอียด สำหรับ DomainSelectionService API โปรดดู DomainSelectionService และคลาสอื่นๆ ใน API

การใช้งาน

หากต้องการใช้ฟีเจอร์การเลือกโดเมนในอุปกรณ์ Android ให้ทำดังนี้ ต้องมีขั้นตอน:

  1. สร้างแอปสำหรับการเลือกโดเมน บริการต้องได้รับการกำหนดใน AndroidManifest.xml ไฟล์

  2. เพิ่มการกำหนดค่าให้กับการวางซ้อนอุปกรณ์เพื่อให้แพลตฟอร์มเชื่อมโยงกับ การใช้งาน DomainSelectionService

  3. รองรับอินเทอร์เฟซ HAL ของวิทยุที่จำเป็นสำหรับฟีเจอร์การเลือกโดเมน

ส่วนนี้จะให้รายละเอียดเพิ่มเติมของขั้นตอนเหล่านี้

เพิ่มรายการบริการใน AndroidManifest.xml

เพื่อให้แอปการเลือกโดเมนลงทะเบียนบริการ DomainSelectionService ด้วยเฟรมเวิร์ก ให้เพิ่มรายการบริการในไฟล์ Manifest โดยใช้ข้อมูลต่อไปนี้ รูปแบบ:

<service
     android:name="com.example.domainselection.DomainSelectionService"
     android:directBootAware="true"
     android:persistent="true"
     …
     android:permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
     …
    <intent-filter>
        <action android:name="android.telephony.DomainSelectionService"/>
    </intent-filter>
    …
</service>

คำจำกัดความของบริการใน AndroidManifest.xml ต้องกำหนดสิ่งต่อไปนี้ เพื่อให้ฟีเจอร์การเลือกโดเมนดำเนินการ

  • directBootAware="true": เปิดให้ค้นพบและเรียกใช้บริการ ทางโทรศัพท์ก่อนที่ผู้ใช้จะปลดล็อกอุปกรณ์ บริการไม่สามารถเข้าถึงได้ พื้นที่เก็บข้อมูลที่เข้ารหัสอุปกรณ์ก่อนที่ผู้ใช้จะปลดล็อกอุปกรณ์ สำหรับข้อมูลเพิ่มเติม ข้อมูล โปรดดูโหมดการเปิดเครื่อง Support Direct และการเข้ารหัสตามไฟล์

  • persistent="true": ให้บริการอย่างต่อเนื่องและไม่ ระบบหยุดการทำงานเพื่อเรียกคืนหน่วยความจำ แอตทริบิวต์นี้ใช้งานได้เฉพาะในกรณีที่ฟังก์ชัน เป็นแอประบบ

  • permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE": ช่วยให้มั่นใจว่า ที่เฉพาะกระบวนการที่มีสิทธิ์BIND_DOMAIN_SELECTION_SERVICE ที่ได้มาสามารถเชื่อมโยงกับแอปได้ วิธีนี้จะช่วยป้องกันไม่ให้แอปหลอกลวงเชื่อมโยงกับ เนื่องจากมีเพียงแอประบบเท่านั้นที่สามารถให้สิทธิ์จาก

บริการต้องระบุองค์ประกอบ intent-filter ที่มีแอตทริบิวต์ การดำเนินการ android.telephony.DomainSelectionService วิธีนี้จะช่วยให้เฟรมเวิร์ก บริการ DomainSelectionService

กำหนดการกำหนดค่าในการวางซ้อนอุปกรณ์

เพื่อให้แพลตฟอร์มเชื่อมโยงกับบริการ DomainSelectionService อย่างปลอดภัย ให้เพิ่ม การกำหนดค่าต่อไปนี้สำหรับการวางซ้อนอุปกรณ์

  • config_domain_selection_service_component_name: ตัวแปร ชื่อคอมโพเนนต์ (สตริง ComponentName ที่แยกเป็นหลายรายการ) สำหรับพารามิเตอร์ DomainSelectionService บริการ

เนื่องจาก Android ไม่รองรับแอปที่มีบุคคลที่สามให้ดาวน์โหลดได้ การใช้งาน DomainSelectionService แอปการเลือกโดเมนต้องเป็น แอประบบที่อยู่ใน /system_ext/priv-app/ หรือ /product/priv-app/ โฟลเดอร์ เฟรมเวิร์กจะตรวจสอบว่าชื่อแพ็กเกจของการดำเนินการหรือไม่ ตรงกับค่าการวางซ้อนของอุปกรณ์เพื่อให้มีเพียงแอปที่ติดตั้งล่วงหน้าที่เชื่อถือได้ ขอบเขต

รองรับอินเทอร์เฟซ HAL ของวิทยุ

หากต้องการเปิดใช้ฟีเจอร์การเลือกโดเมน ให้รองรับ HAL วิทยุที่จำเป็นต่อไปนี้ อินเทอร์เฟซ:

  • IRadioNetwork

    void setEmergencyMode(int serial, EmergencyMode emcModeType);
    void triggerEmergencyNetworkScan(int serial,
            EmergencyNetworkScanTrigger request);
    void cancelEmergencyNetworkScan(int serial, boolean resetScan);
    void exitEmergencyMode(int serial);
    
  • IRadioNetworkIndication

    void emergencyNetworkScanResult(RadioIndicationType type,
            EmergencyRegResult result);
    

การตรวจสอบความถูกต้อง

เพื่อทดสอบว่าเฟรมเวิร์กโทรศัพท์ตอบสนองต่อ DomainSelectionService ให้เรียกใช้การทดสอบ CTS ใน DomainSelectionServiceTestOnMockModem