Veri bakiyesi olmayan Android cihazlar ağ trafiğine izin verir. Bu da operatörlerin ve telekom operatörlerinin azaltma protokollerini uygulamasını gerektirir. Android, operatörlerin ve telekom operatörlerinin bir cihazın bakiyesi bittiğinde bunu belirtmesine olanak tanıyan genel bir çözüm uygular.
Android platformu, giriş portalı algılama sinyaline dayalı trafik azaltma için varsayılan bir davranışa sahip varsayılan bir operatör uygulaması sağlar. Ayrıca operatörlere ve OEM'lere davranışı düşük maliyetle ve yüksek esneklikle özelleştirme fırsatı sunar.
Örnekler ve kaynak
Varsayılan operatör uygulaması şu konumdadır:platform/frameworks/base/packages/CarrierDefaultApp/.
Uygulama
Varsayılan operatör uygulaması, yapılandırılmamış operatörlere kutudan çıkar çıkmaz daha iyi bir deneyim sunacak şekilde yapılandırılmıştır. Operatörler bu varsayılan davranışı kullanabilir. Ayrıca, operatör yapılandırma XML dosyasına sinyal-işlem eşlemeleri ekleyerek varsayılan davranışı geçersiz kılabilirler. Varsayılan uygulamayı kullanmamaya karar verebilir ve bunun yerine kendi bağımsız operatör uygulamalarında UICC ayrıcalıklarını kullanabilirler.
Uygulamaya giriş
Sinyaller
Android çerçevesi, aşağıdaki parametreli sinyallerle işlemleri yapılandırmayı 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
adresinde bulunur.
Desteklenen işlemler
Varsayılan operatör uygulaması, desteklenen sinyallerle eşlenebilecek bir dizi desteklenen işlem tanımlar. Bunlar CarrierActionUtils.java
'te tanımlanı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. Ayrıca kendi işlemlerini tanımlayıp yapılandırabilirler.
Varsayılan sinyal-işlem eşlemeleri
Varsayılan işlemleri yapılandırmak için aşağıdaki işlemi uygulayın:
- Desteklenen sinyaller için bir anahtar tanımlayın.
Varsayılan sinyal-işlem eşlemeleri
CarrierConfigManager.java
adresinde tanımlanı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";
- Sinyal tuşlarıyla 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ılma
İşlem kimliklerini sinyal anahtarlarıyla (CarrierConfigManager.java
içinde tanımlanır) ilişkilendirerek operatör yapılandırma XML dosyasında desteklenen sinyaller için özel işlemler tanımlayabilirsiniz. Örneğin, aşağıdaki eşlemede, ücretli APN'ler devre dışı bırakılır ve yönlendirmeyle ilgili bir portal bildirimi gösterilir:
<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 işlemleri geçersiz kılar.
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:
- Telekom operatörünün cihazın dengesiz sinyal bildirimini doğrulayın.
- Bakiye yetersizken ve kablosuz bağlantı kapalıyken trafik yönlendirme salma işlemini doğrulayın.
- Bakiye yetersiz olduğunda ağ trafiğinin düşürüldüğünü ve bildirim kullanıcı arayüzünün göründüğünü doğrulayın.
- Bakiye yetersizken sesli arama/VoLTE işlevini doğrulama.
- Bakiye yetersiz olduğunda görüntülü görüşmenin engellendiğini doğrulayın.
- Kablosuz ağ açıkken kullanıcının web'de gezinmeye devam edebildiğini ve dengesiz durumdayken gezinme trafiğinin ağ trafiğini açmadığını doğrulayın.
- Dengesiz durumdayken kablosuz bağlantı, WFC ve Bluetooth işlevlerini doğrulama
- Kablosuz bağlantıyı kapatın. Bakiye yetersiz bildirimi kullanıcı arayüzünü ve normal tarama trafiğinin telekomünikasyon kaydı web sitesine yönlendirilmediğini doğrulayın. Bildirim kullanıcı arayüzündeki bağlantının tıklandığında tarayıcının telekomünikasyon şirketi kayıt web sitesine yönlendirdiğinden emin olun.
- Uçak modunu açmanın trafik azaltma durumunu sıfırlamadığını doğrulayın.
- Hizmette olan bir SIM'in değiştirilmesinin ağ trafiği durumunu sıfırladığını doğrulayın.
- Bakiyesi yetersiz olan SIM kartın yeniden takılmasının, trafik yönlendirmesini yeniden başlattığını ve ağ trafiği azaltmayı tekrar etkinleştirdiğini doğrulayın.
- Telefonun yeniden başlatılmasının yönlendirmeyi yeniden etkinleştirdiğini ve trafik kısıtlaması ile bildirim kullanıcı arayüzünü geri getirdiğini doğrulayın.
- "captiveportal" bildirimine dokunun. Kullanıcının kredi eklemesine izin vermek için kısıtlanmış bir ağ bağlantısının kurulduğunu doğrulayın.
- SIM bakiyesini doldurmanın veya yeniden etkinleştirmenin, hücresel ağ trafiğinin düzelmesine, operatör bağlantısının ve bakiye yok bildiriminin kaldırılmasına neden olduğunu doğrulayın.
- Veri hizmeti kurtarma işleminden sonra doğruluk testi.
Varsayılan uygulama, birkaç birim testi örneği ve bunları çalıştıracak bir komut dosyası sağlar (tests/runtest.sh
bölümüne bakın). Özelleştirilmiş bir sürüm veya davranış uyguladığınızda bu özelleştirmeleri özel birim testlerine yansıtmanız gerekir.