También me gusta tocar la guitarra y eso me relaja bastante ...
Blog sobre programación Java, Android, Python y Ruby/Rails. Apuntes de Oracle, MySQL, PostgreSQL, SQLite y algo más ...
domingo, 6 de octubre de 2013
viernes, 23 de agosto de 2013
Verificar estado del WIFI en android
Este es un tipo de funcionalidad que es bueno tenerla en una clase de utilidades globales (en otras palabras, en un a clase de métodos estáticos).
Aveces es necesario conocer el estado del adaptador de red WIFI, para permitirle al usuario o a la misma aplicación realizar o no un proceso crítico del flujo de ejecución.
Como lo escribí arriba hagamos una clase de utilidades, como la siguiente:
Nuestro método isWifiOn nos retornará un true si el WIFI está encendido; un false en caso contrario. Lo que nos permite implementar una acción dependiendo del caso en el que sea llamada la función, por ejemplo:
...
Noten que al ser un método estatico lo podemos llamar sin instanciar la clase SystemUtils; pues lo podemos acceder mediante un llamado directo.
Otro punto muy importante, antes de ejecutar tu aplicación asegurate de que en el AndroidManifest.xml le estás cediendo los permisos a la aplicación para que pueda verificar el estado del adaptador.
Espero les sirva, saludos!
Aveces es necesario conocer el estado del adaptador de red WIFI, para permitirle al usuario o a la misma aplicación realizar o no un proceso crítico del flujo de ejecución.
Como lo escribí arriba hagamos una clase de utilidades, como la siguiente:
import android.content.Context;
public class SystemUtils {
public static boolean isWifiOn(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(!ni.isConnected()) return false; else return true;
}
}
Nuestro método isWifiOn nos retornará un true si el WIFI está encendido; un false en caso contrario. Lo que nos permite implementar una acción dependiendo del caso en el que sea llamada la función, por ejemplo:
...
if(SystemUtils.isWifiOn(getApplicationContext()))
Toast.makeText(getApplicationContext(), "WIFI está encendido", Toast.LENGTH_LONG).show();
else
Toast.makeText(getApplicationContext(), "WIFI está apagado", Toast.LENGTH_LONG).show();
...Noten que al ser un método estatico lo podemos llamar sin instanciar la clase SystemUtils; pues lo podemos acceder mediante un llamado directo.
Otro punto muy importante, antes de ejecutar tu aplicación asegurate de que en el AndroidManifest.xml le estás cediendo los permisos a la aplicación para que pueda verificar el estado del adaptador.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Espero les sirva, saludos!
miércoles, 8 de mayo de 2013
Android Unable to execute dex: Multiple dex files
Este es bastante sencillo de solucionar, sólo hay que LEER (lo entendí despues de una noche rompiendome la cabeza) en vez de GOOGLEAR.
En mi caso el mensaje era este:
[2013-05-07
23:08:21 - Dex Loader] Unable to execute dex: Multiple dex files define
Lcom/sun/jersey/api/json/JSONConfigurated;
[2013-05-07
23:08:21 - smf-prototype] Conversion to Dalvik format failed: Unable to execute
dex: Multiple dex files define Lcom/sun/jersey/api/json/JSONConfigurated;
Estoy trabajando en unos webservices que usan el soporte de JSon y para eso requiero un par de librerias.
La clave esta precisamente en el mensaje : com/sun/jersey/api/json/JSONConfigurated
Al buscar entre las librerias que estaba usando para los asuntos de json (jersey-json-1.16.jar y jersey-bundle-1.17.jar) me dí cuenta que ambos JARs tienen la clase JSONConfigurated ubicada en el mismo paquete.
Solucion : eliminar una de las librerías o usar un bundle, como en mi caso. En realidad sin saber habia metido la otra libreria (jersey-json) y por eso me tiraba el error, pero he visto en muchos lados que a la gente les pasa lo mismo con otras librerias.
Algunos borran las Dependencias de Android del build path (funciona pero si usas cosas como anotaciones de Android no es nada agradable), otros le hacen un simple Clean al proyecto, pero realmente el problema es este, debemos tener cuidado y control de las librerias que estamos incluyendo en nuestro proyecto.
Un saludo!
Suscribirse a:
Entradas (Atom)