Home | History | Annotate | Download | only in features
      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     &lt;boolean&gt;</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     &lt;UID&gt;</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     &lt;UID&gt;</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>