ネットワーク接続のチェック方法
WIFIか3Gネットワークが有効な時は接続し、そうでない場合はオフラインモードで動かすなんて事がしたい場合に、現在のネットワークの接続状況を調べる方法です。
public static boolean isConnected(Context context){ ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ni = cm.getActiveNetworkInfo(); if( ni != null ){ return cm.getActiveNetworkInfo().isConnected(); } return false; }
ConnectivityManager | Android Developersこのクラスを使い、NetworkInfoを取得することでいろいろ取得出来ます。
manifest.xmlに↓を追加しておかないといけないので注意。
Staticメソッドにしてるので、utilityクラスでも作ってactivityからStatic Importして使うと良い感じです。
boolean net = isConnected(this.getApplicationContext());
ConnectivityManagerを使うにはContextが必要なんだけど、thisを渡すとメモリリークする危険があるので、(この場合はしないと思うけど)ApplicationContextを渡した方が良いそうです。Avoiding memory leaks | Android Developers Blog