搭載 Android 15 以上版本的裝置:
實作網域選擇
測試 IMS 服務和舊版服務。
DomainSelectionService
系統 API。DomainSelectionService
是 Android 平台和供應商
網域選擇實作。這個介面可讓供應商導入
提供訊號資訊,例如撥出電話和簡訊的網域
以及網路類型偏好設定 (位於網路掃描中)。
圖 1. 網域選擇功能的架構圖
範例和來源
Android 針對以下項目提供參考實作:
前往 TelephonyDomainSelectionService
查看 Android 開放原始碼計畫。如需詳細
DomainSelectionService
API 說明文件,請參閱
DomainSelectionService
和 API 中的其他類別。
實作
如要在 Android 裝置上實作網域選取功能,請按照下列步驟操作: 以下為必要步驟:
建立網域選取應用程式。服務必須在
AndroidManifest.xml
檔案。在裝置疊加中新增設定,讓平台繫結至
DomainSelectionService
實作。支援網域選取功能所需的無線電 HAL 介面。
本節將進一步說明這些步驟。
在 AndroidManifest.xml 中新增服務項目
用於註冊 DomainSelectionService
服務的網域選取應用程式
與架構互動,請使用下列程式碼,在資訊清單檔案中新增服務項目
格式:
<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
服務,請新增
以下設定至裝置疊加:
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
。