Android 15 veya sonraki sürümleri çalıştıran cihazlarda:
alan seçimini uygula
devre arası geçişli ağlar üzerinden IMS hizmeti ile eski hizmetler arasında
DomainSelectionService
sistem API'sini kullanın. DomainSelectionService
.
Android platformu ve Android platformu ile sağlanan satıcı arasında iyi tanımlanmış bir arayüzdür
alan adı seçiminin uygulanması. Bu arayüz, tedarikçi firmanın uygulamasını
Giden arama ve SMS alan adı gibi sinyal bilgilerini sağlama
ağ taramasındaki ağ türü tercihini ve ağ türü tercihini platforma göre ayarlar.
Şekil 1. Alan seçimi özelliğinin mimari şeması
Örnekler ve kaynak
Android, şurada alan seçimi özelliği için bir referans uygulaması sağlar:
AOSP, TelephonyDomainSelectionService
. Ayrıntılı
DomainSelectionService
API'si hakkındaki dokümanlar için bkz.
DomainSelectionService
ve API'deki diğer sınıflar.
Uygulama
Bir Android cihaza alan seçimi özelliğini uygulamak için aşağıdaki adım adım gereklidir:
Alan adı seçim uygulaması oluşturun. Hizmet,
AndroidManifest.xml
dosyası yükleyin.Platformun
DomainSelectionService
uygulaması.Alan seçimi özelliği için gerekli radyo HAL arayüzlerini destekleme
Bu bölümde, söz konusu adımlarla ilgili daha ayrıntılı bilgi verilmektedir.
AndroidManifest.xml dosyasına hizmet girişi ekle
Alan seçimi uygulamanızın DomainSelectionService
hizmetini kaydetmesi için
aşağıdaki komutu kullanarak manifest dosyasına bir hizmet girişi ekleyin
biçim:
<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
öğesindeki hizmet tanımı aşağıdakileri tanımlamalıdır:
özellikleri hakkında daha fazla bilgi edinin.
directBootAware="true"
: Hizmetin şu kullanıcı tarafından keşfedilmesini ve çalıştırılmasını sağlar: telefonun kilidini açmadan önce telefon eder. Hizmet erişemiyor cihazla şifrelenmiş depolama alanını kullanır. Daha fazla bilgi, Destek Doğrudan Başlatma modu ve Dosya Tabanlı Şifreleme adlı makaleleri inceleyin.persistent="true"
: Hizmetin kalıcı olarak çalıştırılmasına izin verir. sonlandırılmış silme işleminden sonra çalıştırılabilir. Bu özellik yalnızca uygulamanız bir sistem uygulaması olarak geliştirildi.permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
: Şunları sağlar: Bu işlem, yalnızcaBIND_DOMAIN_SELECTION_SERVICE
iznine sahip olan bir işlem sunar. uygulamaya bağlanabilir. Bu, sahte bir uygulamanın Çünkü uygulama tarafından yalnızca sistem uygulamalarına izin bahsedeceğim.
Hizmet ayrıca intent-filter
öğesini
android.telephony.DomainSelectionService
işlem. Bu, çerçevenin
DomainSelectionService
hizmeti.
Cihaz yer paylaşımında yapılandırmayı tanımlayın
Platformun DomainSelectionService
hizmetine güvenli bir şekilde bağlanması için
cihaz yer paylaşımına aşağıdaki yapılandırmayı uygular:
config_domain_selection_service_component_name
: bileşen adı (düzleştirilmiş birComponentName
dizesi)DomainSelectionService
hizmet
Android, üçüncü tarafların indirilebilir uygulamaları olan uygulamaları desteklemediği için
DomainSelectionService
uygulamaları için alan adı seçim uygulaması
/system_ext/priv-app/
veya /product/priv-app/
içinde bulunan sistem uygulaması
tıklayın. Çerçeve, uygulamanın paket adının
cihaz yer paylaşımı değeriyle eşleşir. Böylece, yalnızca güvenilir, önceden yüklenmiş uygulamaların
bağlı.
Radyo HAL arayüzlerini destekleme
Alan adı seçme özelliğini etkinleştirmek için aşağıdaki gerekli radyo HAL'sini destekleyin arayüzler:
-
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);
Doğrulama
Telefon çerçevesinin
DomainSelectionService
arayüzü, CTS testlerini
DomainSelectionServiceTestOnMockModem