Perangkat Android tanpa saldo data memungkinkan traffic jaringan masuk, sehingga operator dan perusahaan telekomunikasi harus menerapkan protokol mitigasi. Android menerapkan solusi generik yang memungkinkan operator dan perusahaan telekomunikasi menunjukkan kapan saldo perangkat habis.
Platform Android menyediakan aplikasi operator default dengan perilaku default untuk mitigasi traffic berdasarkan sinyal deteksi captive portal. API ini juga memberi operator dan OEM peluang untuk menyesuaikan perilaku dengan biaya rendah dan fleksibilitas yang tinggi.
Contoh dan sumber
Aplikasi operator default terletak diplatform/frameworks/base/packages/CarrierDefaultApp/.
Implementasi
Aplikasi operator default dikonfigurasi untuk memberikan pengalaman yang lebih baik bagi operator yang tidak dikonfigurasi sejak awal. Operator dapat menggunakan perilaku default ini. Operator juga dapat mengganti perilaku default dengan menambahkan pemetaan tindakan sinyal ke file XML konfigurasi operator. Mereka dapat memutuskan untuk tidak menggunakan aplikasi default dan menggunakan hak istimewa UICC dengan aplikasi operator mandiri mereka sendiri.
Pengantar penerapan
Sinyal
Framework Android mendukung konfigurasi tindakan ke sinyal berparameter berikut:
TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTEDTelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED
Sinyal ini berada di
frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java.
Tindakan yang didukung
Aplikasi operator default menentukan serangkaian tindakan yang didukung yang dapat dipetakan ke sinyal yang didukung. Ini ditentukan dalam CarrierActionUtils.java:
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;Catatan: Jika operator menerapkan aplikasi mandiri mereka sendiri, mereka dapat menerapkan dukungan untuk sinyal selain yang disebutkan di bagian ini. Mereka juga dapat menentukan dan mengonfigurasi tindakan mereka sendiri.
Pemetaan tindakan sinyal default
Konfigurasi tindakan default dengan mengikuti proses ini:
- Tentukan kunci untuk sinyal yang didukung.
Pemetaan sinyal ke tindakan default ditentukan dalam
CarrierConfigManager.java. Setiap sinyal yang didukung memiliki kunci: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";
- Mengaitkan tindakan default dengan tombol sinyal.
ID tindakan default dikaitkan dengan kunci sinyal:
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 });Framework telephony memetakan tindakan ini ke sinyal yang sesuai.
Mengganti tindakan default
Anda dapat menentukan tindakan kustom untuk sinyal yang didukung dalam file XML konfigurasi operator dengan mengaitkan ID tindakan ke kunci sinyal (ditentukan dalam CarrierConfigManager.java). Misalnya, pemetaan berikut menonaktifkan APN terukur dan menampilkan notifikasi portal saat pengalihan:
<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
<item value="1" />
<item value="4" />
</string-array>Framework telephony memuat konfigurasi ini dan mengganti tindakan default.
Validasi
Tidak ada pengujian CTS, CTS Verifier, atau GTS untuk fitur ini.
Gunakan pengujian validasi manual ini untuk memvalidasi fitur:
- Memvalidasi notifikasi sinyal perangkat tidak seimbang operator telekomunikasi.
- Verifikasi pembatasan pengalihan traffic selama status tidak seimbang dan Wi-Fi nonaktif.
- Pastikan traffic jaringan diturunkan dan UI notifikasi muncul selama status tidak seimbang.
- Memvalidasi fungsi panggilan suara/VoLTE selama status tidak cukup saldo.
- Pastikan panggilan video diblokir dalam status tidak seimbang.
- Dengan Wi-Fi aktif, verifikasi bahwa pengguna dapat melanjutkan penjelajahan web, dan traffic penjelajahan tidak mengaktifkan traffic jaringan saat dalam status tidak seimbang.
- Validasi fungsi Wi-Fi, WFC, dan Bluetooth selama status tidak seimbang.
- Nonaktifkan Wi-Fi. Verifikasi UI notifikasi saldo tidak cukup, dan bahwa traffic penjelajahan biasa tidak dialihkan ke situs web pendaftaran telco. Verifikasi mengklik link di UI notifikasi akan membuka situs pendaftaran operator telekomunikasi di browser.
- Verifikasi bahwa mengaktifkan/menonaktifkan mode pesawat tidak mereset status pembatasan traffic.
- Pastikan bahwa mengganti SIM yang sedang digunakan akan mereset status traffic jaringan.
- Verifikasi bahwa memasukkan kembali SIM yang tidak seimbang akan memulai ulang pengalihan traffic dan mendapatkan pembatasan traffic jaringan lagi.
- Pastikan bahwa memulai ulang ponsel mengaktifkan kembali pengalihan dan memunculkan kembali pembatasan traffic dan UI notifikasi.
- Ketuk notifikasi "captiveportal". Verifikasi koneksi jaringan terbatas dibuat untuk mengizinkan pengguna menambahkan kredit.
- Verifikasi bahwa pengisian ulang atau pengaktifan kembali saldo SIM menyebabkan traffic jaringan seluler pulih, dan link Telco serta notifikasi tidak ada saldo hilang.
- Uji kewarasan setelah pemulihan layanan data.
Aplikasi default menyediakan beberapa contoh pengujian unit dan skrip untuk menjalankannya (lihat tests/runtest.sh). Saat menerapkan versi atau perilaku yang disesuaikan, Anda harus mencerminkan penyesuaian tersebut ke dalam pengujian unit khusus.