Dengesiz Kullanıcılar için Cihaz Davranışını Özelleştirme

Veri dengesi olmayan Android cihazlar, ağ trafiğinin geçişine izin vererek operatörlerin ve telekomünikasyon şirketlerinin azaltma protokollerini uygulamasını gerektirir. Android, operatörlerin ve telekomünikasyon şirketlerinin bir cihazın bakiyesi bittiğinde bunu belirtmesine olanak tanıyan genel bir çözüm uyguluyor.

Android platformu, sabit portal algılama sinyaline dayalı olarak trafiğin azaltılması için varsayılan davranışa sahip bir varsayılan taşıyıcı uygulaması sağlar. Aynı zamanda taşıyıcılara ve OEM'lere davranışı düşük maliyetle ve büyük esneklikle özelleştirme fırsatı da sağlar.

Örnekler ve kaynak

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

Uygulama

Varsayılan operatör uygulaması, yapılandırılmamış operatörler için daha iyi bir deneyim sağlayacak şekilde yapılandırılmıştır. Operatörler bu varsayılan davranışı kullanabilir. Ayrıca taşıyıcı yapılandırma XML dosyasına sinyal eylemi eşlemeleri ekleyerek varsayılan davranışı geçersiz kılabilirler. Varsayılan uygulamayı kullanmamaya ve bunun yerine kendi bağımsız operatör uygulamalarıyla UICC ayrıcalıklarını kullanmaya karar verebilirler.

Uygulamaya giriş

Sinyaller

Android çerçevesi, eylemlerin aşağıdaki parametreli sinyallere göre yapılandırılmasını destekler:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Bu sinyaller frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java konumunda bulunur.

Desteklenen eylemler

Varsayılan operatör uygulaması, desteklenen sinyallerle eşlenebilecek bir dizi desteklenen eylemi tanımlar. Bunlar CarrierActionUtils.java 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ı uygularsa bu bölümde belirtilenler dışındaki sinyaller için destek uygulayabilir. Kendi eylemlerini de tanımlayabilir ve yapılandırabilirler.

Varsayılan sinyal-eylem eşlemeleri

Bu işlemi izleyerek varsayılan eylemleri yapılandırın:

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

    Varsayılan sinyal-eylem eşlemeleri CarrierConfigManager.java tanımlanmıştır. Desteklenen sinyallerin her birinin 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. Varsayılan eylemleri sinyal tuşlarıyla ilişkilendirin.

    Varsayılan eylem kimlikleri sinyal tuşları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 eylemleri karşılık gelen sinyallerle eşleştirir.

Varsayılan eylemleri geçersiz kılma

Eylem kimliklerini sinyal anahtarlarıyla ( CarrierConfigManager.java tanımlanmıştır) ilişkilendirerek taşıyıcı yapılandırma XML dosyasında desteklenen sinyaller için özel eylemler tanımlayabilirsiniz. Örneğin, aşağıdaki eşleme, ölçülü APN'leri devre dışı bırakır ve yeniden yönlendirmede 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ılan eylemleri geçersiz kılar.

Doğrulama

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

Özelliği doğrulamak için bu manuel doğrulama testlerini kullanın:

  1. Telekomünikasyon şirketinin cihazının dengesiz sinyal bildirimini doğrulayın.
  2. Dengesizlik durumu ve Wi-Fi kapalıyken trafik yönlendirme kısıtlamasını doğrulayın.
  3. Denge dışı durumdayken ağ trafiğinin kapatıldığını ve bildirim kullanıcı arayüzünün göründüğünü doğrulayın.
  4. Dengesizlik durumunda sesli arama/VoLTE işlevini doğrulayın.
  5. Denge dışı durumda görüntülü aramanın engellendiğini doğrulayın.
  6. Wi-Fi açıkken kullanıcının web'de gezinmeye devam edebildiğini ve göz atma trafiğinin dengesiz durumdayken ağ trafiğini açmadığını doğrulayın.
  7. Dengesizlik durumunda Wi-Fi, WFC ve Bluetooth işlevlerini doğrulayın.
  8. Wi-Fi'yi kapatın. Denge dışı bildirim kullanıcı arayüzünü ve sıradan tarama trafiğinin telekomünikasyon kayıt web sitesine yönlendirilmediğini doğrulayın. Bildirim kullanıcı arayüzündeki bağlantıya tıklandığında tarayıcının telekomünikasyon kayıt web sitesine yönlendirildiğini doğrulayın.
  9. Uçak modunu değiştirmenin trafik kısıtlama durumunu sıfırlamadığını doğrulayın.
  10. Hizmet içi SIM'i değiştirmenin ağ trafiği durumunu sıfırladığını doğrulayın.
  11. Dengesiz SIM'in yeniden takılmasının trafik yeniden yönlendirmesini yeniden başlattığını ve ağ trafiğinin yeniden kısıtlanmasını sağladığını doğrulayın.
  12. Telefonu yeniden başlatmanın yeniden yönlendirmeyi yeniden etkinleştirdiğini ve trafik kısıtlaması ile bildirim kullanıcı arayüzünü geri getirdiğini doğrulayın.
  13. "Cesaret portalı" bildirimine dokunun. Kullanıcının kredi eklemesine izin vermek için kısıtlı bir ağ bağlantısının kurulduğunu doğrulayın.
  14. SIM bakiyesinin yeniden doldurulması veya yeniden etkinleştirilmesinin hücresel ağ trafiğinin iyileşmesine ve Telco bağlantısının ve bakiye yok bildiriminin kaybolmasına neden olduğunu doğrulayın.
  15. Veri hizmeti kurtarıldıktan sonra akıl sağlığı testi.

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