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

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

แผนภาพสถาปัตยกรรมของบริการการเลือกโดเมนที่แสดงการโต้ตอบกับแพลตฟอร์ม Android และการติดตั้งใช้งานของผู้ให้บริการ

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

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

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

การใช้งาน

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

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

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

  3. รองรับอินเทอร์เฟซ Hardware Abstraction Layer (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": อนุญาตให้โทรศัพท์ค้นหาและเรียกใช้บริการได้ก่อนที่ผู้ใช้จะปลดล็อกอุปกรณ์ บริการเข้าถึงพื้นที่เก็บข้อมูลที่เข้ารหัสในอุปกรณ์ไม่ได้จนกว่าผู้ใช้จะปลดล็อกอุปกรณ์ ดูข้อมูลเพิ่มเติมได้ที่รองรับโหมดการบูตโดยตรงและการเข้ารหัสตามไฟล์
  • persistent="true": อนุญาตให้บริการทำงานอย่างต่อเนื่องและไม่ถูกระบบปิด เพื่อเรียกคืนหน่วยความจำ แอตทริบิวต์นี้จะทำงานเฉพาะในกรณีที่สร้างแอปเป็นแอปของระบบ
  • permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE": ยืนยัน ว่าเฉพาะกระบวนการที่มีสิทธิ์ BIND_DOMAIN_SELECTION_SERVICE ที่ได้รับเท่านั้นที่จะเชื่อมโยงกับแอปได้ ซึ่งจะป้องกันไม่ให้แอปที่ประสงค์ร้ายเชื่อมโยงกับ บริการ เนื่องจากมีเพียงแอปของระบบเท่านั้นที่เฟรมเวิร์กจะให้สิทธิ์ได้

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

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

หากต้องการให้แพลตฟอร์มเชื่อมโยงกับบริการ 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