| page.title=Data Saver |
| metaDescription=Optimalisasi penggunaan data yang diaktifkan pengguna. |
| page.keywords="android N", "data usage", "metered network" |
| page.image=images/cards/card-nyc_2x.jpg |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| <h2> |
| Dalam dokumen ini |
| </h2> |
| |
| <ol> |
| <li> |
| <a href="#status">Memeriksa Preferensi Data Saver</a> |
| <ol> |
| <li> |
| <a href="#request-whitelist">Meminta izin daftar putih</a> |
| </li> |
| </ol> |
| </li> |
| |
| <li> |
| <a href="#monitor-changes">Memantau Perubahan pada Preferensi |
| Data Saver</a> |
| </li> |
| |
| <li> |
| <a href="#testing">Menguji dengan Perintah Android Debug Bridge</a> |
| </li> |
| </ol> |
| </div> |
| </div> |
| |
| <p> |
| Selama penggunaan ponsel cerdas, biaya paket data seluler bisa saja |
| melebihi harga perangkat itu sendiri. Di N Developer Preview, pengguna bisa |
| mengaktifkan Data Saver berdasarkan lingkup perangkat untuk menghemat data, baik saat |
| roaming, mendekati akhir siklus penagihan, atau pada paket data prabayar kecil. |
| </p> |
| |
| <p> |
| Bila pengguna mengaktifkan Data Saver di <strong>Settings</strong> 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 Data |
| Saver diaktifkan. |
| </p> |
| |
| <p> |
| N Developer Preview memperluas {@link android.net.ConnectivityManager} |
| API untuk menyediakan cara pada aplikasi untuk <a href="#status">menerima preferensi Data Saver |
| pengguna</a> dan <a href="#monitor-changes">memantau perubahan |
| preferensi</a>. Hal ini dianggap praktik terbaik bagi aplikasi untuk memeriksa apakah |
| pengguna telah mengaktifkan DataSaver dan berusaha membatasi penggunaan data latar depan dan |
| data latar belakang. |
| </p> |
| |
| <h2 id="status"> |
| Memeriksa Preferensi Data Saver |
| </h2> |
| |
| <p> |
| Di N Developer Preview, aplikasi bisa menggunakan {@link |
| android.net.ConnectivityManager} API untuk menentukan pembatasan penggunaan data |
| apa yang sedang diterapkan. Metode {@code getRestrictBackgroundStatus()} |
| akan mengembalikan salah satu dari nilai berikut: |
| </p> |
| |
| <dl> |
| <dt> |
| {@code RESTRICT_BACKGROUND_STATUS_DISABLED} |
| </dt> |
| |
| <dd> |
| Data Saver dinonaktifkan. |
| </dd> |
| |
| <dt> |
| {@code RESTRICT_BACKGROUND_STATUS_ENABLED} |
| </dt> |
| |
| <dd> |
| Pengguna telah mengaktifkan Data Saver untuk aplikasi ini. Aplikasi harus berusaha membatasi |
| penggunaan data di latar depan dan dengan halus menangani pembatasan penggunaan |
| data latar belakang. |
| </dd> |
| |
| <dt> |
| {@code RESTRICT_BACKGROUND_STATUS_WHITELISTED} |
| </dt> |
| |
| <dd> |
| Pengguna telah mengaktifkan Data Saver namun aplikasi telah dimasukkan dalam daftar putih. Aplikasi harus |
| tetap berusaha membatasi penggunaan data latar belakang dan latar depan. |
| </dd> |
| </dl> |
| |
| <p> |
| Hal ini dianggap praktik terbaik untuk membatasi penggunaan data bila perangkat |
| terhubung ke jaringan berkuota, meskipun Data Saver telah dinonaktifkan atau aplikasi |
| telah dimasukkan dalam daftar putih. Kode contoh berikut menggunakan {@link |
| android.net.ConnectivityManager#isActiveNetworkMetered |
| ConnectivityManager.isActiveNetworkMetered()} dan {@code |
| ConnectivityManager.getRestrictBackgroundStatus()} untuk menentukan berapa banyak data |
| yang harus digunakan aplikasi: |
| </p> |
| |
| <pre> |
| 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. |
| } |
| </pre> |
| |
| <h3 id="request-whitelist"> |
| Meminta izin daftar putih |
| </h3> |
| |
| <p> |
| Jika aplikasi Anda perlu menggunakan data di latar belakang, aplikasi bisa meminta izin |
| daftar putih dengan mengirim |
| <code>Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS</code> |
| yang mengandung URI dari nama paket aplikasi Anda: misalnya, |
| <code>package:MY_APP_ID</code>. |
| </p> |
| |
| <p> |
| Mengirim intent dan URI akan membuka aplikasi <strong>Settings</strong> dan |
| menampilkan setelan penggunaan data untuk aplikasi Anda. Pengguna nanti bisa memutuskan apakah akan |
| mengaktifkan data latar belakang untuk aplikasi Anda. Sebelum Anda mengirim intent ini, sebaiknya |
| tanyakan kepada pengguna terlebih dahulu apakah mereka ingin membuka aplikasi |
| <strong>Settings</strong> untuk keperluan mengaktifkan penggunaan |
| data latar belakang. |
| </p> |
| |
| <h2 id="monitor-changes"> |
| Memantau Perubahan pada Preferensi Data Saver |
| </h2> |
| |
| <p> |
| Aplikasi bisa memantau perubahan pada preferensi Data Saver dengan membuat {@link |
| android.content.BroadcastReceiver} untuk memantau {@code |
| ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED} dan secara dinamis |
| mendaftarkan penerima pada {@link android.content.Context#registerReceiver |
| Context.registerReceiver()}. Bila menerima siaran ini, aplikasi harus |
| <a href="#status">memeriksa apakah preferensi Data Saver baru memengaruhi |
| izinnya</a> dengan memanggil {@code |
| ConnectivityManager.getRestrictBackgroundStatus()}. |
| </p> |
| |
| <p class="note"> |
| <strong>Catatan:</strong> Sistem hanya mengirim siaran ini ke aplikasi yang |
| secara dinamis mendaftar padanya dengan {@link |
| android.content.Context#registerReceiver Context.registerReceiver()}. Aplikasi |
| yang mendaftar untuk menerima siaran ini dalam manifes mereka |
| tidak akan menerimanya. |
| </p> |
| |
| <h2 id="testing"> |
| Menguji dengan Perintah Android Debug Bridge |
| </h2> |
| |
| <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a> |
| menyediakan beberapa perintah yang bisa Anda gunakan untuk memeriksa dan |
| mengonfigurasi izin jaringan: |
| |
| <dl> |
| <dt> |
| <code>$ adb shell dumpsys netpolicy</code> |
| </dt> |
| |
| <dd> |
| 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. |
| </dd> |
| |
| <dt> |
| <code>$ adb shell cmd netpolicy</code> |
| </dt> |
| |
| <dd> |
| Menampilkan daftar lengkap dari perintah Network Policy Manager (netpolicy). |
| </dd> |
| |
| <dt> |
| <code>$ adb shell cmd netpolicy set restrict-background |
| <boolean></code> |
| </dt> |
| |
| <dd> |
| Mengaktifkan atau menonaktifkan mode Data Saver saat meneruskan <code>true</code> atau |
| <code>false</code>, masing-masing. |
| </dd> |
| |
| <dt> |
| <code>$ adb shell cmd netpolicy add restrict-background-whitelist |
| <UID></code> |
| </dt> |
| |
| <dd> |
| Menambahkan UID paket tertentu ke daftar putih untuk mengizinkan penggunaan data berkuota |
| di latar belakang. |
| </dd> |
| |
| <dt> |
| <code>$ adb shell cmd netpolicy remove restrict-background-whitelist |
| <UID></code> |
| </dt> |
| |
| <dd> |
| Membuang UID paket tertentu dari daftar putih untuk memblokir |
| penggunaan data berkuota di latar belakang saat Data Saver diaktifkan. |
| </dd> |
| </dl> |