1 page.title=Economia de dados 2 metaDescription=User-enabled otimizao de uso de dados. 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 Neste documento 11 </h2> 12 13 <ol> 14 <li> 15 <a href="#status">Verificao de preferncias da Economia de dados</a> 16 <ol> 17 <li> 18 <a href="#request-whitelist">Solicitao de permisso para colocar na lista de permisses</a> 19 </li> 20 </ol> 21 </li> 22 23 <li> 24 <a href="#monitor-changes">Monitoramento de preferncias do 25 Economia de dados</a> 26 </li> 27 28 <li> 29 <a href="#testing">Teste com comandos do Android Debug Bridge</a> 30 </li> 31 </ol> 32 </div> 33 </div> 34 35 <p> 36 Durante a vida til de um smartphone, o custo do plano de dados pode 37 facilmente exceder o custo do prprio dispositivo. No N Developer Preview, os usurios podem 38 ativar a Economia de dados no dispositivo como um todo para usar menos dados, seja 39 em roaming, perto do final do perodo de cobrana ou em pacotes de dados pr-pagos pequenos. 40 </p> 41 42 <p> 43 Quando um usurio ativa a Economia de dados em <strong>Settings</strong> e o dispositivo est 44 em uma rede tarifada, o sistema bloqueia o uso de dados em segundo plano e avisa 45 aos aplicativos para reduzir o uso de dados no primeiro plano sempre que possvel. Os usurios podem 46 autorizar aplicativos especficos a usar dados tarifados em segundo plano, mesmo com a Economia 47 de dados ativada. 48 </p> 49 50 <p> 51 O N Developer Preview estende a API {@link android.net.ConnectivityManager} 52 para oferecer aos aplicativos uma forma de <a href="#status">recuperar as 53 preferncias do usurio para a Economia de dados</a> e <a href="#monitor-changes">monitorar 54 as mudanas de preferncias</a>. Como prtica recomendada, os aplicativos devem verificar se o 55 usurio ativou a Economia de dados e tentar limitar o uso de dados em primeiro e 56 segundo plano. 57 </p> 58 59 <h2 id="status"> 60 Verificao de preferncias da Economia de dados 61 </h2> 62 63 <p> 64 No N Developer Preview, aplicativos podem usar a API {@link 65 android.net.ConnectivityManager} para determinar quais restries 66 de uso de dados esto sendo aplicadas. O mtodo {@code getRestrictBackgroundStatus()} 67 retorna um dos seguintes valores: 68 </p> 69 70 <dl> 71 <dt> 72 {@code RESTRICT_BACKGROUND_STATUS_DISABLED} 73 </dt> 74 75 <dd> 76 A Economia de dados est desativada. 77 </dd> 78 79 <dt> 80 {@code RESTRICT_BACKGROUND_STATUS_ENABLED} 81 </dt> 82 83 <dd> 84 O usurio ativou a Economia de dados para este aplicativo. Os aplicativos tentaro limitar o 85 uso de dados em primeiro plano e gerenciar as restries ao 86 uso de dados em segundo plano. 87 </dd> 88 89 <dt> 90 {@code RESTRICT_BACKGROUND_STATUS_WHITELISTED} 91 </dt> 92 93 <dd> 94 O usurio ativou a Economia de dados, mas o aplicativo est na lista de permisses. Os aplicativos 95 ainda tentaro limitar o uso de dados em primeiro e segundo plano. 96 </dd> 97 </dl> 98 99 <p> 100 prtica recomendada limitar o uso de dados sempre que o dispositivo 101 estiver conectado a uma rede tarifada, mesmo que a Economia de dados esteja desativada e o aplicativo 102 esteja na lista de permisses. O modelo de cdigo a seguir usa {@link 103 android.net.ConnectivityManager#isActiveNetworkMetered 104 ConnectivityManager.isActiveNetworkMetered()} e {@code 105 ConnectivityManager.getRestrictBackgroundStatus()} para determinar o volume mximo de dados 106 que o aplicativo pode usar: 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 Solicitao de permisso para colocar na lista de permisses 136 </h3> 137 138 <p> 139 Se o seu aplicativo precisa usar dados em segundo plano, ele pode solicitar permisso para 140 entrar na lista de permisses enviando uma inteno 141 <code>Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS</code> 142 que contenha o URI no nome de pacote do aplicativo, por exemplo, 143 <code>package:MY_APP_ID</code>. 144 </p> 145 146 <p> 147 O envio da inteno e do URI abre o aplicativo <strong>Settings</strong> e 148 exibe as configuraes de uso de dados de seu aplicativo. O usurio pode decidir ento se 149 ativar os dados em segundo plano para o aplicativo. Antes de enviar a inteno, 150 prtica recomendada perguntar primeiro ao usurio se ele deseja iniciar o 151 aplicativo <strong>Settings</strong> com o objetivo de ativar o uso 152 de dados em segundo plano. 153 </p> 154 155 <h2 id="monitor-changes"> 156 Monitoramento de alteraes nas preferncias da Economia de dados 157 </h2> 158 159 <p> 160 Os aplicativos podem monitorar alteraes nas preferncias da Economia de dados criando um {@link 161 android.content.BroadcastReceiver} para escutar {@code 162 ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED} e registrar 163 dinamicamente o receptor em {@link android.content.Context#registerReceiver 164 Context.registerReceiver()}. Quando recebe esta transmisso, o aplicativo deve 165 <a href="#status">verificar se as novas preferncias da Economia de dados afetam 166 as permisses</a> chamando {@code 167 ConnectivityManager.getRestrictBackgroundStatus()}. 168 </p> 169 170 <p class="note"> 171 <strong>Observao:</strong> O sistema s envia esta transmisso para aplicativos que 172 se registram dinamicamente para receb-la em {@link 173 android.content.Context#registerReceiver Context.registerReceiver()}. Os aplicativos 174 que se registrarem para receber a transmisso no manifesto no a 175 recebero. 176 </p> 177 178 <h2 id="testing"> 179 Teste com comandos do Android Debug Bridge 180 </h2> 181 182 O <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a> 183 oferece alguns comandos que podem ser usados para verificar e configurar permisses 184 de rede: 185 186 <dl> 187 <dt> 188 <code>$ adb shell dumpsys netpolicy</code> 189 </dt> 190 191 <dd> 192 Gera um relatrio que inclui a configurao de restrio atual da rede de segundo plano global 193 , os UIDs do pacote em lista de permisses e as permisses de rede 194 de outros pacotes conhecidos. 195 </dd> 196 197 <dt> 198 <code>$ adb shell cmd netpolicy</code> 199 </dt> 200 201 <dd> 202 Exibe uma lista completa de comandos do Gerenciador de polticas de rede (netpolicy). 203 </dd> 204 205 <dt> 206 <code>$ adb shell cmd netpolicy set restrict-background 207 <boolean></code> 208 </dt> 209 210 <dd> 211 Ativa ou desativa o modo da Economia de dados ao passar <code>true</code> ou 212 <code>false</code>, respectivamente. 213 </dd> 214 215 <dt> 216 <code>$ adb shell cmd netpolicy add restrict-background-whitelist 217 <UID></code> 218 </dt> 219 220 <dd> 221 Adiciona o UID do pacote especificado lista de permisses para permitir o uso de dados de segundo plano 222 tarifados. 223 </dd> 224 225 <dt> 226 <code>$ adb shell cmd netpolicy remove restrict-background-whitelist 227 <UID></code> 228 </dt> 229 230 <dd> 231 Adiciona o UID do pacote especificado lista de permisses para bloquear o uso de dados 232 de segundo plano tarifados enquanto a Economia de dados estiver ativada. 233 </dd> 234 </dl>