Skip to content

Most visited

Recently visited

navigation

Mengoptimalkan Penggunaan Data Jaringan

Selama penggunaan ponsel cerdas, biaya paket data seluler bisa saja melebihi harga perangkat itu sendiri. Dari Android 7.0 (API level 24), pengguna dapat mengaktifkan Penghemat Data pada seluruh perangkat untuk mengoptimalkan penggunaan data perangkat, dan menggunakan data yang lebih sedikit. Kemampuan ini khususnya berguna saat roaming, mendekati akhir siklus tagihan, atau untuk paket data prabayar kecil.

Bila pengguna mengaktifkan Penghemat Data di Settings dan perangkat berada dalam jaringan berkuota, sistem akan memblokir penggunaan data latar belakang dan memberi tahu aplikasi untuk menghemat penggunaan data latar depan bila memungkinkan. Pengguna bisa memasukkan aplikasi tertentu ke daftar putih untuk memungkinkan penggunaan data berkuota bila Penghemat Data diaktifkan.

N Developer Preview memperluas ConnectivityManager API untuk menyediakan cara pada aplikasi untuk menerima preferensi Penghemat Data pengguna dan memantau perubahan preferensi. Hal ini dianggap praktik terbaik bagi aplikasi untuk memeriksa apakah pengguna telah mengaktifkan Penghemat Data dan berusaha membatasi penggunaan data latar depan dan data latar belakang.

Memeriksa Preferensi Penghemat Data

Di N Developer Preview, aplikasi bisa menggunakan ConnectivityManager API untuk menentukan pembatasan penggunaan data apa yang sedang diterapkan. Metode getRestrictBackgroundStatus() akan mengembalikan salah satu dari nilai berikut:

RESTRICT_BACKGROUND_STATUS_DISABLED
Penghemat Data dinonaktifkan.
RESTRICT_BACKGROUND_STATUS_ENABLED
Pengguna telah mengaktifkan Penghemat Data untuk aplikasi ini. Aplikasi harus berusaha membatasi penggunaan data di latar depan dan dengan halus menangani pembatasan penggunaan data latar belakang.
RESTRICT_BACKGROUND_STATUS_WHITELISTED
Pengguna telah mengaktifkan Penghemat Data namun aplikasi telah dimasukkan dalam daftar putih. Aplikasi harus tetap berusaha membatasi penggunaan data latar belakang dan latar depan.

Hal ini dianggap praktik terbaik untuk membatasi penggunaan data bila perangkat terhubung ke jaringan berkuota, meskipun Penghemat Data telah dinonaktifkan atau aplikasi telah dimasukkan dalam daftar putih. Kode contoh berikut menggunakan ConnectivityManager.isActiveNetworkMetered() dan ConnectivityManager.getRestrictBackgroundStatus() untuk menentukan berapa banyak data yang harus digunakan aplikasi:

ConnectivityManager connMgr = (ConnectivityManager)
        getSystemService(Context.CONNECTIVITY_SERVICE);
// Checks if the device is on a metered network
if (connMgr.isActiveNetworkMetered()) {
  // Checks user’s Data Saver settings.
  switch (connMgr.getRestrictBackgroundStatus()) {
    case RESTRICT_BACKGROUND_STATUS_ENABLED:
    // Background data usage is blocked for this app. Wherever possible,
    // the app should also use less data in the foreground.

    case RESTRICT_BACKGROUND_STATUS_WHITELISTED:
    // The app is whitelisted. Wherever possible,
    // the app should use less data in the foreground and background.

    case RESTRICT_BACKGROUND_STATUS_DISABLED:
    // Data Saver is disabled. Since the device is connected to a
    // metered network, the app should use less data wherever possible.
  }
} else {
  // The device is not on a metered network.
  // Use data as required to perform syncs, downloads, and updates.
}

Meminta izin daftar putih

Jika aplikasi Anda perlu menggunakan data di latar belakang, aplikasi bisa meminta izin daftar putih dengan mengirim maksud Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS yang mengandung URI dari nama paket aplikasi Anda: misalnya, package:MY_APP_ID.

Mengirim maksud dan URI akan membuka aplikasi Settings dan menampilkan setelan penggunaan data untuk aplikasi Anda. Pengguna nanti bisa memutuskan apakah akan mengaktifkan data latar belakang untuk aplikasi Anda. Sebelum Anda mengirim maksud ini, sebaiknya tanyakan kepada pengguna terlebih dahulu apakah mereka ingin membuka aplikasi Settings untuk keperluan mengaktifkan penggunaan data latar belakang.

Memantau Perubahan pada Preferensi Penghemat Data

Aplikasi bisa memantau perubahan pada preferensi Penghemat Data dengan membuat BroadcastReceiver untuk memantau ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED dan secara dinamis mendaftarkan penerima dengan Context.registerReceiver(). Bila menerima siaran ini, aplikasi harus memeriksa apakah preferensi Penghemat Data baru memengaruhi izinnya dengan memanggil ConnectivityManager.getRestrictBackgroundStatus().

Catatan: Sistem hanya mengirim siaran ini ke aplikasi yang secara dinamis mendaftar padanya dengan Context.registerReceiver() . Aplikasi yang mendaftar untuk menerima siaran ini dalam manifes mereka tidak akan menerimanya.

Menguji dengan Perintah Android Debug Bridge

Android Debug Bridge (ADB) menyediakan sedikit perintah yang Anda dapat gunakan untuk menguji aplikasi Anda dalam ketentuan Penghemat Data. Anda dapat mengonfigurasi izin konfigurasi jaringan atau menyetel jaringan nirkabel sesuai yang diukur untuk menguji aplikasi Anda di jaringan berbiaya tetap.

$ adb shell dumpsys netpolicy
Menghasilkan laporan berisi setelan pembatasan jaringan latar belakang global saat ini, UID paket saat ini di daftar putih, dan izin jaringan untuk paket yang diketahui lainnya.
$ adb shell cmd netpolicy
Menampilkan daftar lengkap dari perintah Network Policy Manager (netpolicy).
$ adb shell cmd netpolicy set restrict-background <boolean>
Mengaktifkan atau menonaktifkan mode Penghemat Data saat meneruskan true atau false, masing-masing.
$ adb shell cmd netpolicy add restrict-background-whitelist <UID>
Menambahkan UID paket tertentu ke daftar putih untuk mengizinkan penggunaan data berkuota di latar belakang.
$ adb shell cmd netpolicy remove restrict-background-whitelist <UID>
Membuang UID paket tertentu dari daftar putih untuk memblokir penggunaan data berkuota di latar belakang saat Penghemat Data diaktifkan.
$ adb shell cmd netpolicy list wifi-networks
Membuat daftar semua jaringan wifi, menampilkan jika jaringan diukur.
$ adb shell cmd netpolicy set metered-network <WIFI_SSID> true
Menyetel wifi dengan SSID yang ditetapkan sesuai yang diukur sehingga memungkinkan Anda untuk menyimulasikan jaringan yang diukur pada jaringan berbiaya tetap.
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Ikuti Google Developers di WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)