Dengesi olmayan kullanıcılar için cihaz davranışını özelleştirin

Veri dengesi olmayan Android cihazlar, ağ trafiğine izin verir. telekomünikasyon şirketlerinin ve telekomünikasyon teşebbüslerinin sorumluluğundadır. Android, operatörlerin ve telekomünikasyon şirketlerinin, bir cihazda bu özelliği kullanan yardımcı olur.

Android platformu, aşağıdakiler için varsayılan davranışla birlikte varsayılan bir operatör uygulaması sağlar: giriş portalı algılama sinyaline dayalı trafik azaltma Ayrıca düşük maliyetlerle ve OEM'lerin davranışını özelleştirme fırsatı büyük esneklik sağlıyor.

Örnekler ve kaynak

Varsayılan operatör uygulaması platform/frameworks/base/packages/CarrierDefaultApp/. adresinde bulunmaktadır.

Uygulama

Varsayılan operatör uygulaması, mobil cihazlar için daha iyi bir deneyim yapılandırılmamış operatörler kullanıma hazır değildir. Operatörler bu varsayılan davranışı kullanabilir. Ayrıca operatör yapılandırma XML dosyası. Varsayılan uygulamayı kullanmamaya karar verebilir ve bunun yerine kendi bağımsız operatör uygulamasında UICC ayrıcalıklarını kullanabilir.

Uygulamaya giriş

Sinyaller

Android çerçevesi, işlemleri aşağıdaki parametre haline getirilmiş olarak yapılandırmayı destekler sinyaller:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Bu sinyaller bulunduğunuz konum: frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java

Desteklenen işlemler

Varsayılan operatör uygulaması, eşleştirilebilen bir dizi desteklenen işlem tanımlar sinyallerine geçiş yapacaktır. Bunlar, CarrierActionUtils.java içinde tanımlanmıştır:

    public static final int CARRIER_ACTION_ENABLE_METERED_APNS               = 0;
    public static final int CARRIER_ACTION_DISABLE_METERED_APNS              = 1;
    public static final int CARRIER_ACTION_DISABLE_RADIO                     = 2;
    public static final int CARRIER_ACTION_ENABLE_RADIO                      = 3;
    public static final int CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION          = 4;
    public static final int CARRIER_ACTION_SHOW_NO_DATA_SERVICE_NOTIFICATION = 5;
    public static final int CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS          = 6;

Not: Bir operatör kendi bağımsız uygulamasını uyguluyorsa bu belgede belirtilenlerin dışındaki sinyaller için de destek uygulayabilirler. bölümüne ekleyin. Ayrıca kendi eylemlerini de tanımlayabilir ve yapılandırabilir.

Varsayılan sinyal-işlem eşlemeleri

Aşağıdaki süreci izleyerek varsayılan işlemleri yapılandırın:

  1. Desteklenen sinyaller için bir anahtar tanımlayın.

    Varsayılan sinyal-işlem eşlemeleri CarrierConfigManager.java içinde tanımlanmıştır. Desteklenen sinyallerin her birinde bir anahtar vardır:

    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array";
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY =
    "carrier_default_actions_on_dcfailure_string_array";
  2. Tuşları bildirmek için varsayılan işlemleri ilişkilendirin.

    Varsayılan işlem kimlikleri sinyal anahtarlarıyla ilişkilendirilir:

    sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY,                new String[]{
                    "1, 4"
                    //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION
                    // 4: CARRIER_ACTION_DISABLE_METERED_APNS
             });
    

    Telefon çerçevesi bu işlemleri ilgili sinyallerle eşler.

Varsayılan işlemleri geçersiz kıl

Operatör yapılandırma XML'inde desteklenen sinyaller için özel işlemler tanımlayabilirsiniz. dosyası oluşturmak için CarrierConfigManager.java) bilgileri gösterilir. Örneğin, aşağıdaki eşleme sayaçlı APN'leri devre dışı bırakır ve yönlendirmeyle ilgili bir portal bildirimi gösterir:

<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
            <item value="1" />
            <item value="4" />
</string-array>

Telefon çerçevesi bu yapılandırmaları yükler ve varsayılanları geçersiz kılar işlemlerdir.

Doğrulama

Bu özellik için CTS, CTS Doğrulayıcı veya GTS testi yoktur.

Özelliği doğrulamak için aşağıdaki manuel doğrulama testlerini kullanın:

  1. Teleco'nun cihaz dengesiz sinyal bildirimini doğrulayın.
  2. Dengesiz durumda ve kablosuz bağlantı olduğunda trafik yönlendirme kısıtlamasını doğrulayın kapalı.
  3. Ağ trafiğinin kapatıldığını ve devre dışı bırakma sırasında bildirim kullanıcı arayüzünün göründüğünü doğrulayın görebilirsiniz.
  4. Denge dışı durumda sesli arama/VoLTE işlevini doğrulayın.
  5. Görüntülü görüşmenin dengesiz durumda engellendiğini doğrulayın.
  6. Kablosuz bağlantı açıkken kullanıcının web'e göz atmaya ve gezinmeye devam edebileceğini doğrulayın trafik dengesizken ağ trafiğini açmıyor durumu.
  7. Denge dışındayken kablosuz, WFC ve Bluetooth işlevlerini doğrulama durumu.
  8. Kablosuz bağlantıyı kapatın. Bakiye dışı bildirim kullanıcı arayüzünü ve bu arayüzdeki normal trafiği, telekomünikasyon kayıt web sitesine yönlendirilmez. Doğrula Bildirim kullanıcı arayüzündeki bağlantıyı tıklamak, tarayıcıyı telekomünikasyona yönlendirir kayıt web sitesi.
  9. Uçak modunun değiştirilmesinin trafik kısıtlamayı sıfırlamadığını doğrulayın durumu.
  10. Hizmet içi SIM kart değiştirildiğinde ağ trafiğini sıfırladığını doğrulama durumu.
  11. Dengesi olmayan SIM'i tekrar takmanın trafik yönlendirmesini yeniden başlattığını doğrulayın ve ağ trafiği kısıtlamasını yeniden elde eder.
  12. Telefonu yeniden başlatmanın yönlendirmeyi yeniden etkinleştirdiğini ve trafik kısıtlama ve bildirim kullanıcı arayüzü.
  13. "Giriş portalına" dokunun bildirimi görürsünüz. Kısıtlanmış bir ağı doğrulama bağlantısı kurulduğundan emin olun.
  14. SIM bakiyesinin yeniden doldurulmasının veya yeniden etkinleştirmesinin hücresel ağa bağlı olduğunu doğrulayın ve Teleco bağlantısı ve gidilecek bakiye yok bildirimi kaçırdınız.
  15. Veri hizmeti kurtarma işleminden sonra akıl sağlığı testi.

Varsayılan uygulama, birim testleri için birkaç örnek ve bunları çalıştırmak için bir komut dosyası sağlar (bkz. tests/runtest.sh). Özelleştirilmiş bir sürüm veya bu özelleştirmeleri özel birim testlerine yansıtmanız gerekir.