Menyesuaikan Perilaku Perangkat untuk Pengguna yang Tidak Seimbang

Perangkat Android yang tidak memiliki saldo data memungkinkan lalu lintas jaringan melewatinya, sehingga operator dan perusahaan telekomunikasi harus menerapkan protokol mitigasi. Android menerapkan solusi umum yang memungkinkan operator dan perusahaan telekomunikasi menunjukkan kapan perangkat kehabisan saldo.

Platform Android menyediakan aplikasi operator default dengan perilaku default untuk mitigasi lalu lintas berdasarkan sinyal deteksi captive-portal. Hal ini juga memberikan kesempatan kepada operator dan OEM untuk menyesuaikan perilaku dengan biaya rendah dan fleksibilitas tinggi.

Contoh dan sumber

Aplikasi operator default terletak di platform/frameworks/base/packages/CarrierDefaultApp/ .

Penerapan

Aplikasi operator default dikonfigurasikan untuk memberikan pengalaman yang lebih baik bagi operator yang belum dikonfigurasi. Operator dapat menggunakan perilaku default ini. Mereka juga dapat mengganti perilaku default dengan menambahkan pemetaan tindakan sinyal ke file XML konfigurasi operator. Mereka dapat memutuskan untuk tidak menggunakan aplikasi default dan sebagai gantinya menggunakan hak istimewa UICC dengan aplikasi operator mandiri mereka.

Pengenalan implementasi

Sinyal

Kerangka kerja Android mendukung tindakan konfigurasi ke sinyal berparameter berikut:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Sinyal ini terletak 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 didefinisikan di 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 mengimplementasikan aplikasi mandiri mereka, maka 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

Konfigurasikan tindakan default dengan mengikuti proses ini:

  1. Tentukan kunci untuk sinyal yang didukung.

    Pemetaan sinyal ke tindakan default ditentukan di CarrierConfigManager.java . Masing-masing sinyal yang didukung memiliki kuncinya:

    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. Kaitkan tindakan default ke kunci 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
             });
    

    Kerangka telepon memetakan tindakan-tindakan ini ke sinyal-sinyal yang sesuai.

Mengganti tindakan default

Anda dapat menentukan tindakan khusus untuk sinyal yang didukung dalam file XML konfigurasi operator dengan mengaitkan ID tindakan ke kunci sinyal (didefinisikan dalam CarrierConfigManager.java ). Misalnya, pemetaan berikut menonaktifkan APN terukur dan menampilkan pemberitahuan portal tentang pengalihan:

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

Kerangka kerja telepon memuat konfigurasi ini dan mengesampingkan tindakan default.

Validasi

Tidak ada pengujian CTS, CTS Verifier, atau GTS untuk fitur ini.

Gunakan pengujian validasi manual berikut untuk memvalidasi fitur:

  1. Validasi notifikasi sinyal perangkat telekomunikasi tidak seimbang.
  2. Verifikasi pembatasan pengalihan lalu lintas selama keadaan tidak seimbang dan Wi-Fi mati.
  3. Pastikan lalu lintas jaringan dimatikan dan UI notifikasi muncul saat keadaan tidak seimbang.
  4. Validasi fungsi panggilan suara/VoLTE selama keadaan tidak seimbang.
  5. Pastikan panggilan video diblokir dalam keadaan tidak seimbang.
  6. Dengan Wi-Fi aktif, pastikan pengguna dapat melanjutkan penelusuran web, dan lalu lintas penelusuran tidak mengaktifkan lalu lintas jaringan saat berada dalam kondisi tidak seimbang.
  7. Validasi fungsi Wi-Fi, WFC, dan Bluetooth selama keadaan tidak seimbang.
  8. Matikan Wi-Fi. Verifikasi UI pemberitahuan tidak seimbang, dan lalu lintas penelusuran biasa tidak dialihkan ke situs web pendaftaran telekomunikasi. Verifikasi dengan mengklik tautan di UI notifikasi membawa browser ke situs web pendaftaran telekomunikasi.
  9. Pastikan bahwa peralihan mode pesawat tidak menyetel ulang status pembatasan lalu lintas.
  10. Verifikasi bahwa menukar SIM dalam layanan akan mengatur ulang status lalu lintas jaringan.
  11. Verifikasi bahwa memasukkan kembali SIM yang tidak seimbang akan memulai ulang pengalihan lalu lintas dan mendapatkan pembatasan lalu lintas jaringan lagi.
  12. Verifikasi bahwa me-reboot ponsel akan mengaktifkan kembali pengalihan dan mengembalikan pembatasan lalu lintas dan UI notifikasi.
  13. Ketuk notifikasi "captiveportal". Verifikasi koneksi jaringan terbatas telah dibuat untuk memungkinkan pengguna menambahkan kredit.
  14. Pastikan isi ulang atau pengaktifan kembali saldo SIM menyebabkan lalu lintas jaringan seluler pulih, dan tautan Telco serta pemberitahuan tidak ada saldo hilang.
  15. Tes kewarasan setelah pemulihan layanan data.

Aplikasi default menyediakan beberapa contoh pengujian unit dan skrip untuk menjalankannya (lihat tests/runtest.sh ). Saat Anda menerapkan versi atau perilaku yang disesuaikan, Anda harus mencerminkan penyesuaian tersebut ke dalam pengujian unit khusus.