1 page.title=Cmo determinar y controlar el estado de la conectividad 2 parent.title=Cmo optimizar la duracin de la batera 3 parent.link=index.html 4 5 trainingnavtop=true 6 7 previous.title=Cmo determinar y controlar el tipo de conector y el estado de la conexin 8 previous.link=docking-monitoring.html 9 next.title=Cmo manipular los receptores de emisin bajo demanda 10 next.link=manifest-receivers.html 11 12 @jd:body 13 14 <div id="tb-wrapper"> 15 <div id="tb"> 16 17 <h2>En esta seccin puedes aprender:</h2> 18 <ol> 19 <li><a href="#DetermineConnection">Cmo determinar si tienes conexin a Internet</a></li> 20 <li><a href="#DetermineType">Cmo determinar el tipo de conexin a Internet</a></li> 21 <li><a href="#MonitorChanges">Cmo supervisar los cambios en la conectividad</a></li> 22 </ol> 23 24 25 <h2>Tambin puedes consultar:</h2> 26 <ul> 27 <li><a href="{@docRoot}guide/components/intents-filters.html">Intentos y filtros de intentos</a> 28 </ul> 29 30 </div> 31 </div> 32 33 <p>Algunos de los usos ms comunes para las alarmas con repeticin y los servicios en segundo plano es programar actualizaciones regulares de los datos de aplicaciones a partir de recursos de Internet, almacenar datos en la memoria cach o ejecutar descargas a largo plazo. Sin embargo, si no ests conectado a Internet o la conexin es demasiado dbil para completar la descarga, para qu activar el dispositivo y programar la actualizacin?</p> 34 35 <p>Puedes utilizar {@link android.net.ConnectivityManager} para comprobar si ests conectado a Internet y, en ese caso, el tipo de conexin que ests utilizando.</p> 36 37 38 <h2 id="DetermineConnection">Cmo determinar si tienes conexin a Internet</h2> 39 40 <p>No es necesario programar una actualizacin basada en un recurso de Internet si no ests conectado. En el fragmento que aparece a continuacin, se muestra cmo utilizar {@link android.net.ConnectivityManager} para consultar la red activa y determinar si hay conexin a Internet.</p> 41 42 <pre>ConnectivityManager cm = 43 (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 44 45 NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 46 boolean isConnected = activeNetwork.isConnectedOrConnecting();</pre> 47 48 49 <h2 id="DetermineType">Cmo determinar el tipo de conexin a Internet</h2> 50 51 <p>Tambin puedes determinar el tipo de conexin a Internet que hay disponible.</p> 52 53 <p>El dispositivo se puede conectar a Internet a travs de conexiones Ethernet, Wi-Fi, WiMAX y de datos mviles. Al consultar el tipo de red activa, como se muestra a continuacin, puedes modificar la frecuencia de actualizacin en funcin del ancho de banda disponible.</p> 54 55 <pre>boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;</pre> 56 57 <p>El coste de las conexiones de datos mviles suele ser superior al de las conexiones Wi-Fi, por lo que en la mayora de los casos, la frecuencia de actualizacin de tu aplicacin debera ser menor si utilizas conexiones mviles. Del mismo modo, las descargas grandes deberan cancelarse hasta que ests conectado a una red Wi-Fi.</p> 58 59 <p>Cuando hayas inhabilitado las actualizaciones, es importante que detectes si se hay cambios en la conectividad para poder reanudarlas cuando se haya establecido una conexin a Internet.</p> 60 61 62 <h2 id="MonitorChanges">Cmo supervisar los cambios en la conectividad</h2> 63 64 <p>{@link android.net.ConnectivityManager} emite la accin {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION} ({@code "android.net.conn.CONNECTIVITY_CHANGE"}) cuando se han modificado los detalles de la conectividad. Puedes registrar un receptor de emisin en el archivo de manifiesto para detectar estos cambios y reanudar (o cancelar) las actualizaciones en segundo plano segn corresponda.</p> 65 66 <pre><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></pre> 67 68 <p>Los cambios en la conectividad de un dispositivo pueden ser muy frecuentes (esta emisin se activa siempre que cambias de una conexin de datos mviles a una conexin Wi-Fi). Como resultado, te recomendamos que supervises esta emisin nicamente cuando hayas cancelado anteriormente las actualizaciones o las descargas para reanudarlas. Normalmente, basta con comprobar la conexin a Internet antes de iniciar una actualizacin y, si no hay ninguna, cancelar el resto de actualizaciones hasta que se restablezca la conexin.</p> 69 70 <p>Esta tcnica requiere que alternes receptores de emisin que hayas declarado en el archivo de manifiesto, que se describe en la prxima seccin.</p> 71