2012年10月30日火曜日

[Android]ネットワーク接続のチェック方法

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に↓を追加しておかないといけないので注意。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission>
Staticメソッドにしてるので、utilityクラスでも作ってactivityからStatic Importして使うと良い感じです。
boolean net = isConnected(this.getApplicationContext());
ConnectivityManagerを使うにはContextが必要なんだけど、thisを渡すとメモリリークする危険があるので、(この場合はしないと思うけど)ApplicationContextを渡した方が良いそうです。

0 件のコメント:

コメントを投稿