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

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