สำหรับอุปกรณ์ที่ใช้ Android 15 ขึ้นไป คุณสามารถ
ใช้การเลือกโดเมน
ระหว่างบริการ IMS และบริการเดิมผ่านวงจรที่สลับเครือข่ายโดยใช้
API ระบบ DomainSelectionService
DomainSelectionService
เป็นอินเทอร์เฟซที่กำหนดมาอย่างดีระหว่างแพลตฟอร์ม Android กับผู้ให้บริการ
การเลือกโดเมน อินเทอร์เฟซนี้ช่วยให้ผู้ให้บริการติดตั้งใช้งาน
ให้ข้อมูลการส่งสัญญาณ เช่น โดเมนที่โทรออกและส่ง SMS
และกำหนดประเภทเครือข่ายในการสแกนเครือข่ายไปยังแพลตฟอร์ม
รูปที่ 1 แผนภาพสถาปัตยกรรมสำหรับฟีเจอร์การเลือกโดเมน
ตัวอย่างและแหล่งที่มา
Android ได้ติดตั้งใช้งานข้อมูลอ้างอิงสำหรับฟีเจอร์การเลือกโดเมนใน
AOSP ที่ TelephonyDomainSelectionService
หากต้องการทราบข้อมูลเรื่องการตั้งค่าแบบละเอียด
สำหรับ DomainSelectionService
API โปรดดู
DomainSelectionService
และคลาสอื่นๆ ใน API
การใช้งาน
หากต้องการใช้ฟีเจอร์การเลือกโดเมนในอุปกรณ์ Android ให้ทำดังนี้ ต้องมีขั้นตอน:
สร้างแอปสำหรับการเลือกโดเมน บริการต้องได้รับการกำหนดใน
AndroidManifest.xml
ไฟล์เพิ่มการกำหนดค่าให้กับการวางซ้อนอุปกรณ์เพื่อให้แพลตฟอร์มเชื่อมโยงกับ การใช้งาน
DomainSelectionService
รองรับอินเทอร์เฟซ 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 วิทยุที่จำเป็นต่อไปนี้ อินเทอร์เฟซ:
-
void setEmergencyMode(int serial, EmergencyMode emcModeType); void triggerEmergencyNetworkScan(int serial, EmergencyNetworkScanTrigger request); void cancelEmergencyNetworkScan(int serial, boolean resetScan); void exitEmergencyMode(int serial);
-
void emergencyNetworkScanResult(RadioIndicationType type, EmergencyRegResult result);
การตรวจสอบความถูกต้อง
เพื่อทดสอบว่าเฟรมเวิร์กโทรศัพท์ตอบสนองต่อ
DomainSelectionService
ให้เรียกใช้การทดสอบ CTS ใน
DomainSelectionServiceTestOnMockModem