Operatör yapılandırması

Android 6.0 ve sonraki sürümlerde ayrıcalıklı uygulamalarını kullanarak operatöre özel yapılandırmalar sunabilirsiniz. Bu UICC Operatör Ayrıcalıkları'na göre Android 5.1 (Lollipop MR1) sürümünde kullanıma sunulmuştur, operatör bu yapılandırmanın farklı bir yapılandırma şablonu sunar. kullanıcılara dinamik olarak operatör yapılandırması sağlamasını sağlayan tanımlanmış bir arayüzden yürütülmesini sağlar.

Düzgün şekilde imzalanmış bir operatör uygulaması, sistem görüntüsüne önceden yüklenebilir. otomatik olarak veya bir uygulama mağazasından manuel olarak yüklendiğinden emin olun. Uygulama , ayarlar için yapılandırma sağlamak üzere platform tarafından sorgulanıyor şunları içerir:

  • Dolaşım/dolaşım olmayan ağlar
  • Görsel sesli mesaj
  • SMS/MMS ağ ayarları
  • VoLTE/IMS yapılandırmaları
ziyaret edin.

Döndürülecek değerlerin belirlenmesi tamamen operatör uygulamasına bağlıdır ve platformu.

Bu yaklaşımın temel avantajları şunlardır:

  • Dinamik yapılandırma: MMMNC olmayan türetilmiş yapılandırma, örneğin, mobil sanal ağ operatörleri (MVNO'lar) veya müşterilerin ek hizmetlere kaydolması.
  • Herhangi bir kanal üzerinden satılan cihazlar için destek: Örneğin, açık pazar telefonu doğru şekilde yapılandırılabilir. bir uygulama mağazasından uygulama indirerek ayarları nasıl yapacağınızı belirleyin.
  • Güvenlik: Bu yapılandırmayı sağlama ayrıcalığı: yalnızca operatör tarafından imzalanan uygulamalara verilir.
  • Tanımlanan API: Bu yapılandırma daha önce depolanıyordu herkese açık bir platform üzerinden değil, çoğunlukla çerçeve içindeki dahili XML yer paylaşımlarında API'ye gidin. Android 6.0'daki operatör yapılandırma API'si herkese açıktır ve iyi tanımlanmıştır.

İşleyiş şekli

Yapılandırmayı yükle

Bu özelliğin sağladığı operatör yapılandırması, anahtar/değer çiftlerinden oluşan telefonla ilgili çeşitli davranışları değiştiren büyük şirketler.

Belirli bir cihaz için değer grubu, şu bileşenleri sıraya sokun:

  1. Operatör uygulaması (bu isteğe bağlıdır, ancak önerilen Android Open'da bulunanların ötesinde ek yapılandırma için konum bilgisi Kaynak Proje (AOSP)
  2. Sistem görüntüsüyle birlikte sunulan platform yapılandırma uygulaması
  3. Çerçeveye gömülü varsayılan değerler (önceki davranışa eşdeğerdir) Android 6.0'a)
ziyaret edin.

Platform yapılandırma uygulaması

Genel bir platform yapılandırma uygulaması, sistem görüntüsüyle birlikte sunulur. Bu uygulama aşağıdakileri sağlayabilir: varsayılan operatör uygulamasının sunmadığı değişkenlerin değerlerini görüntüleyebilirsiniz. Platform yapılandırması uygulama (Android 6.0'da) şu ülkelerde bulunabilir: packages/apps/CarrierConfig

Bu uygulamanın amacı, bir operatör kullandığında ağ başına konfigürasyon sunmaktır. Uygulama yüklü değilse ve operatörler/OEM'ler uygulamada çok küçük değişiklikler yapmalıdır. resimlere yer verir. Operatörler bunun yerine ayrı operatör uygulamasını operatör özelleştirme, güncellemelerin bu tür platformlar üzerinden dağıtılmasına mağaza olarak da kullanabilirsiniz.

Bir operatör uygulamasına ayrıcalık nasıl verilir?

Söz konusu operatör uygulaması, UICC Operatör Ayrıcalıkları bölümünde belirtildiği şekilde SIM karta takmanız gerekir.

Operatör uygulamasına hangi bilgiler aktarılır?

Operatör uygulamasına aşağıdaki değerler sağlandığı için hangi değerlerin döndürüleceğine ilişkin dinamik karar:

  • MCC
  • MNC
  • SPN
  • IMSI
  • GRID1
  • GSYİH2
  • Operatör Kimliği

Operatör kimliklerini entegre etme hakkında daha fazla bilgi için Operatör kimliklerini CarrierConfig ile entegre etme

Operatör yapılandırması yüklenirken

Anahtar/değer çiftleri listesi şu şekilde oluşturulur:

  • SIM yüklendiğinde (önyükleme veya SIM çalışırken değiştirme)
  • Operatör uygulaması manuel olarak yeniden yüklemeyi tetiklediğinde
  • Operatör uygulaması ne zaman güncellendiğinde

Bkz. android.service.carrier.CarrierService#onLoadConfig() inceleyebilirsiniz.

Yapılandırmayı kullanma

Yapılandırma oluşturulduğunda, yapılandırmanın içerdiği değerler kullanılır. şu gibi çeşitli sistem yapılandırması değerlerini belirlemek için:

  • Dahili çerçeve telefon ayarları
  • Örneğin, SmsManager'da SDK tarafından döndürülen yapılandırma değerleri
  • Çevirici'deki VVM bağlantı değerleri gibi uygulama ayarları

Yapılandırma anahtarları

Anahtar listesi, android.telephony.CarrierConfigManager bölgesindeki genel SDK kapsamında tanımlanır ve aynı API düzeyinde değiştirilemez. Anahtarların özeti için aşağıdaki tabloya bakın.

Uygulamayı oluşturma

Uygulamayı oluşturun

Uygulamanız, Android 6.0 API düzeyini (23) hedeflemelidir.

android.service.carrier.CarrierService'i geçersiz kılan bir sınıf bildir

  1. İstediğiniz değerleri döndürmek için onLoadConfig değerini geçersiz kılın service.carrier.CarrierIdentifier nesnesine dayalı olarak tedarik başarılı oldu.
  2. Senaryolarda notifyConfigChangedForSubId çağrısı yapmak için mantık ekleyin değişebileceği durumlar (örneğin, kullanıcının hesabına ilave hizmetler eklediğinde).

Aşağıda bununla ilgili bir örnek verilmiştir:

public class SampleCarrierConfigService extends CarrierService {

    private static final String TAG = "SampleCarrierConfigService";

    public SampleCarrierConfigService() {
        Log.d(TAG, "Service created");
    }

    @Override
    public PersistableBundle onLoadConfig(CarrierIdentifier id) {
        Log.d(TAG, "Config being fetched");
        PersistableBundle config = new PersistableBundle();
        config.putBoolean(
            CarrierConfigManager.KEY_CARRIER_VOLTE_AVAILABLE_BOOL, true);
        config.putBoolean(
            CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, false);
        config.putInt(CarrierConfigManager.KEY_VOLTE_REPLACEMENT_RAT_INT, 6);
        // Check CarrierIdentifier and add more config if needed…
        return config;
    }
}

Daha fazla bilgi için android.service.carrier.CarrierService bir referans noktası olarak kabul edilir.

Manifest'te sınıfı adlandırın.

Aşağıda bununla ilgili bir örnek verilmiştir:

<service android:name=".SampleCarrierConfigService"
android:label="@string/service_name"
android:permission="android.permission.BIND_CARRIER_SERVICES">
      <intent-filter>
      <action android:name="android.service.carrier.CarrierService"/></intent-filter>
</service>

Uygulamayı aynı e-posta adresiyle imzalayın SIM'deki sertifika

Şu sürüm için UICC Operatör Ayrıcalıkları'nı inceleyin: gereksinimlerini karşılayın.

Operatör uygulamasıyla APN'ler ekleyin

Bir operatör uygulamasından programatik olarak APN'ler eklemek için (örneğin, SIM sırasında) etkinleştirme) İçerik sağlayıcıya APN öğeleri eklemek için ContentResolver API'leri URI tarafından tanımlanan android.provider.Telephony.Carriers.CONTENT_URI) İçerik URI'sinin tablo yapısı hakkında daha fazla bilgi için bkz. Telephony.Carriers değerleridir.

Daha fazla bilgi için bkz. APN ve CarrierConfig.

Uygulamayı test et

Yapılandırma uygulamanızı derlediğinizde kodunuzu şununla:

  • Geçerli bir sertifika imzası içeren SIM
  • Android 6.0 ve sonraki sürümleri çalıştıran bir cihaz (ör. Android cihaz)

Operatör hizmeti özelliklerini ayarlama

Android'de operatör hizmeti özellikleri ses, mesajlaşma ve ve veri hizmetlerinin desteklendiği bir cihazda oturum açın. Operatörler, operatörü belirtebilir cihaz düzeyinde ve abonelik düzeyinde cihaz için hizmet özellikleri seviye (Android 15 veya sonraki sürümler).

Cihaz düzeyinde hizmet özellikleri

Cihaz düzeyinde hizmet özellikleri, Cihaz üretilmiştir (üretimden sonra değiştirilemez). Operatörler şunları yapabilir: aşağıdaki sistem kaynağı aracılığıyla cihaz düzeyinde özellikleri belirtin geçersiz kılmalar:

Uygulamalar, cihaz düzeyinde hizmet özelliklerini aşağıdakiler aracılığıyla sorgulayabilir: API'ler:

Abonelik düzeyinde hizmet özellikleri

Android 15 veya sonraki sürümleri çalıştıran cihazlarda operatörler, cihazın hizmet özelliklerini abonelik düzeyinde sunmaktır. Abonelik düzeyinde hizmeti belirtmek için özellikleri kullanmak için CarrierConfigManager.KEY_CELLULAR_SERVICE_CAPABILITIES_INT_ARRAY. API'ye gidin. Örneğin, bir aboneliğin yalnızca veri olduğunu belirtmek için değeri SubscriptionManager#SERVICE_CAPABILITY_DATA

Uygulamalar (önceden yüklenmiş sistem uygulamaları ve üçüncü taraf uygulamaları) operatörü sorgulayabilir. belirli bir abonelik için hizmet özelliklerini SubscriptionInfo.getServiceCapabilities(). yöntemidir. Böylece uygulama geliştiriciler, kullanıcı deneyimini abonelikteki kullanılabilir özellikler. Örneğin, uygulama geliştiriciler Çevirici uygulamasının, kullanıcının cihazında telefon araması yapılmasına izin vermediğinden emin olun. yalnızca veri aboneliği

Kullanımdan kaldırılan hizmet özellikleri API'leri

Android 15'ten itibaren Android'de hem cihaz düzeyinde hem de abonelik düzeyinde hizmet özellikleri. Bu değişiklik nedeniyle, şu anda kullandığınız özellikleri API'ler daha iyi okunabilirlik amacıyla yeniden adlandırıldı. Aşağıdaki tabloda kullanımdan kaldırılan API'ler ve Android 15'te kullanıma sunulan yeniden adlandırılmış API'ler:

Desteği sonlandırıldı (Android 14 veya önceki sürümler) Eşdeğer (Android 15 veya sonraki sürümler)
TelephonyManager.isVoiceCapable() TelephonyManager.isDeviceVoiceCapable()
TelephonyManager.isSmsCapable() TelephonyManager.isDeviceSmsCapable()