Android 現在のネットワーク接続チェックの方法をするには、環境として
uses-permission で、 android.permission.ACCESS_NETWORK_STATE が許可されてること。
実行は、android.net.ConnectivityManager から使用している android.net.NetworkInfo を取得してチェックする。
ConnectivityManager のインスタンス生成で指定する Context は、Activity 自身でなく
getApplicationContext() で取得したものを指定する。
ConnectivityManager manager = (ConnectivityManager)this.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if (info.isConnected()){
// 接続中
}else{
// 未接続
}
NetworkInfo からは、他にも各種情報が参照できる。
int getType() ・・・Mobile か Wifi を数値で 0=mobile
String getTypeName() ・・・接続名 mobile など、、
String getExtraInfo() ・・・extra information about the network state
エミュレータで動かすと internet と返ってきた
android.net.NetworkInfo.State getState()・・・enum が返ってくる。デベロッパーページ参照
http://developer.android.com/reference/android/net/NetworkInfo.State.html
たいした手間でもないので、static メソッドにしなくても良いと考える。
onResume() の中で実行して処理するのが一般的に考えられる。