1 page.title=Data Saver 2 metaDescription=Optimalisasi penggunaan data yang diaktifkan pengguna. 3 page.keywords="android N", "data usage", "metered network" 4 page.image=images/cards/card-nyc_2x.jpg 5 @jd:body 6 7 <div id="qv-wrapper"> 8 <div id="qv"> 9 <h2> 10 Dalam dokumen ini 11 </h2> 12 13 <ol> 14 <li> 15 <a href="#status">Memeriksa Preferensi Data Saver</a> 16 <ol> 17 <li> 18 <a href="#request-whitelist">Meminta izin daftar putih</a> 19 </li> 20 </ol> 21 </li> 22 23 <li> 24 <a href="#monitor-changes">Memantau Perubahan pada Preferensi 25 Data Saver</a> 26 </li> 27 28 <li> 29 <a href="#testing">Menguji dengan Perintah Android Debug Bridge</a> 30 </li> 31 </ol> 32 </div> 33 </div> 34 35 <p> 36 Selama penggunaan ponsel cerdas, biaya paket data seluler bisa saja 37 melebihi harga perangkat itu sendiri. Di N Developer Preview, pengguna bisa 38 mengaktifkan Data Saver berdasarkan lingkup perangkat untuk menghemat data, baik saat 39 roaming, mendekati akhir siklus penagihan, atau pada paket data prabayar kecil. 40 </p> 41 42 <p> 43 Bila pengguna mengaktifkan Data Saver di <strong>Settings</strong> dan perangkat 44 berada dalam jaringan berkuota, sistem akan memblokir penggunaan data latar belakang dan memberi tahu 45 aplikasi untuk menghemat penggunaan data latar depan bila memungkinkan. Pengguna bisa 46 memasukkan aplikasi tertentu ke daftar putih untuk memungkinkan penggunaan data berkuota bila Data 47 Saver diaktifkan. 48 </p> 49 50 <p> 51 N Developer Preview memperluas {@link android.net.ConnectivityManager} 52 API untuk menyediakan cara pada aplikasi untuk <a href="#status">menerima preferensi Data Saver 53 pengguna</a> dan <a href="#monitor-changes">memantau perubahan 54 preferensi</a>. Hal ini dianggap praktik terbaik bagi aplikasi untuk memeriksa apakah 55 pengguna telah mengaktifkan DataSaver dan berusaha membatasi penggunaan data latar depan dan 56 data latar belakang. 57 </p> 58 59 <h2 id="status"> 60 Memeriksa Preferensi Data Saver 61 </h2> 62 63 <p> 64 Di N Developer Preview, aplikasi bisa menggunakan {@link 65 android.net.ConnectivityManager} API untuk menentukan pembatasan penggunaan data 66 apa yang sedang diterapkan. Metode {@code getRestrictBackgroundStatus()} 67 akan mengembalikan salah satu dari nilai berikut: 68 </p> 69 70 <dl> 71 <dt> 72 {@code RESTRICT_BACKGROUND_STATUS_DISABLED} 73 </dt> 74 75 <dd> 76 Data Saver dinonaktifkan. 77 </dd> 78 79 <dt> 80 {@code RESTRICT_BACKGROUND_STATUS_ENABLED} 81 </dt> 82 83 <dd> 84 Pengguna telah mengaktifkan Data Saver untuk aplikasi ini. Aplikasi harus berusaha membatasi 85 penggunaan data di latar depan dan dengan halus menangani pembatasan penggunaan 86 data latar belakang. 87 </dd> 88 89 <dt> 90 {@code RESTRICT_BACKGROUND_STATUS_WHITELISTED} 91 </dt> 92 93 <dd> 94 Pengguna telah mengaktifkan Data Saver namun aplikasi telah dimasukkan dalam daftar putih. Aplikasi harus 95 tetap berusaha membatasi penggunaan data latar belakang dan latar depan. 96 </dd> 97 </dl> 98 99 <p> 100 Hal ini dianggap praktik terbaik untuk membatasi penggunaan data bila perangkat 101 terhubung ke jaringan berkuota, meskipun Data Saver telah dinonaktifkan atau aplikasi 102 telah dimasukkan dalam daftar putih. Kode contoh berikut menggunakan {@link 103 android.net.ConnectivityManager#isActiveNetworkMetered 104 ConnectivityManager.isActiveNetworkMetered()} dan {@code 105 ConnectivityManager.getRestrictBackgroundStatus()} untuk menentukan berapa banyak data 106 yang harus digunakan aplikasi: 107 </p> 108 109 <pre> 110 ConnectivityManager connMgr = (ConnectivityManager) 111 getSystemService(Context.CONNECTIVITY_SERVICE); 112 // Checks if the device is on a metered network 113 if (connMgr.isActiveNetworkMetered()) { 114 // Checks users Data Saver settings. 115 switch (connMgr.getRestrictBackgroundStatus()) { 116 case RESTRICT_BACKGROUND_STATUS_ENABLED: 117 // Background data usage is blocked for this app. Wherever possible, 118 // the app should also use less data in the foreground. 119 120 case RESTRICT_BACKGROUND_STATUS_WHITELISTED: 121 // The app is whitelisted. Wherever possible, 122 // the app should use less data in the foreground and background. 123 124 case RESTRICT_BACKGROUND_STATUS_DISABLED: 125 // Data Saver is disabled. Since the device is connected to a 126 // metered network, the app should use less data wherever possible. 127 } 128 } else { 129 // The device is not on a metered network. 130 // Use data as required to perform syncs, downloads, and updates. 131 } 132 </pre> 133 134 <h3 id="request-whitelist"> 135 Meminta izin daftar putih 136 </h3> 137 138 <p> 139 Jika aplikasi Anda perlu menggunakan data di latar belakang, aplikasi bisa meminta izin 140 daftar putih dengan mengirim 141 <code>Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS</code> 142 yang mengandung URI dari nama paket aplikasi Anda: misalnya, 143 <code>package:MY_APP_ID</code>. 144 </p> 145 146 <p> 147 Mengirim intent dan URI akan membuka aplikasi <strong>Settings</strong> dan 148 menampilkan setelan penggunaan data untuk aplikasi Anda. Pengguna nanti bisa memutuskan apakah akan 149 mengaktifkan data latar belakang untuk aplikasi Anda. Sebelum Anda mengirim intent ini, sebaiknya 150 tanyakan kepada pengguna terlebih dahulu apakah mereka ingin membuka aplikasi 151 <strong>Settings</strong> untuk keperluan mengaktifkan penggunaan 152 data latar belakang. 153 </p> 154 155 <h2 id="monitor-changes"> 156 Memantau Perubahan pada Preferensi Data Saver 157 </h2> 158 159 <p> 160 Aplikasi bisa memantau perubahan pada preferensi Data Saver dengan membuat {@link 161 android.content.BroadcastReceiver} untuk memantau {@code 162 ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED} dan secara dinamis 163 mendaftarkan penerima pada {@link android.content.Context#registerReceiver 164 Context.registerReceiver()}. Bila menerima siaran ini, aplikasi harus 165 <a href="#status">memeriksa apakah preferensi Data Saver baru memengaruhi 166 izinnya</a> dengan memanggil {@code 167 ConnectivityManager.getRestrictBackgroundStatus()}. 168 </p> 169 170 <p class="note"> 171 <strong>Catatan:</strong> Sistem hanya mengirim siaran ini ke aplikasi yang 172 secara dinamis mendaftar padanya dengan {@link 173 android.content.Context#registerReceiver Context.registerReceiver()}. Aplikasi 174 yang mendaftar untuk menerima siaran ini dalam manifes mereka 175 tidak akan menerimanya. 176 </p> 177 178 <h2 id="testing"> 179 Menguji dengan Perintah Android Debug Bridge 180 </h2> 181 182 <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a> 183 menyediakan beberapa perintah yang bisa Anda gunakan untuk memeriksa dan 184 mengonfigurasi izin jaringan: 185 186 <dl> 187 <dt> 188 <code>$ adb shell dumpsys netpolicy</code> 189 </dt> 190 191 <dd> 192 Menghasilkan laporan berisi setelan pembatasan jaringan latar belakang 193 global saat ini, UID paket saat ini di daftar putih, dan izin jaringan 194 untuk paket yang diketahui lainnya. 195 </dd> 196 197 <dt> 198 <code>$ adb shell cmd netpolicy</code> 199 </dt> 200 201 <dd> 202 Menampilkan daftar lengkap dari perintah Network Policy Manager (netpolicy). 203 </dd> 204 205 <dt> 206 <code>$ adb shell cmd netpolicy set restrict-background 207 <boolean></code> 208 </dt> 209 210 <dd> 211 Mengaktifkan atau menonaktifkan mode Data Saver saat meneruskan <code>true</code> atau 212 <code>false</code>, masing-masing. 213 </dd> 214 215 <dt> 216 <code>$ adb shell cmd netpolicy add restrict-background-whitelist 217 <UID></code> 218 </dt> 219 220 <dd> 221 Menambahkan UID paket tertentu ke daftar putih untuk mengizinkan penggunaan data berkuota 222 di latar belakang. 223 </dd> 224 225 <dt> 226 <code>$ adb shell cmd netpolicy remove restrict-background-whitelist 227 <UID></code> 228 </dt> 229 230 <dd> 231 Membuang UID paket tertentu dari daftar putih untuk memblokir 232 penggunaan data berkuota di latar belakang saat Data Saver diaktifkan. 233 </dd> 234 </dl>