Androidでアプリがネットワークに接続されているかどうかを判断
3515 ワード
1.MyApplication extends Applicationに次のコードを追加します.
//
public boolean isConnectInternet() {
ConnectivityManager conManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE );
NetworkInfo networkInfo = conManager.getActiveNetworkInfo();
if (networkInfo != null ){ // , ,
return networkInfo.isAvailable();
}
return false ;
}
// WIFI
public boolean isWifiConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWiFiNetworkInfo = mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWiFiNetworkInfo != null) {
return mWiFiNetworkInfo.isAvailable();
}
}
return false;
}
//
public boolean isMobileConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mMobileNetworkInfo = mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mMobileNetworkInfo != null) {
return mMobileNetworkInfo.isAvailable();
}
}
return false;
}
// のネットワーク タイプ の public static int getConnectedType(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {
return mNetworkInfo.getType();
}
}
return -1;
}
2.インベントリ・ファイルに の を します.
Androidアプリケーションを する には、ネットワークへのアクセスに しては、ネットワークの をチェックする があります. にはConnectivityManagerで を することができます.
ConnectivityManagerには、 の4つの なタスクがあります.
1、 のネットワーク (GPRS、WIFI、UMTSなどを む)を する
2、 の が わった 、 を る
3、 つのネットワーク に した 、フェイルオーバーを う
ネットワーク を して するだけであれば、 するActivityで び すことができるBoolean isConnectioned=MyApplication.getInstance.isConnectInternet();
ネットワーク を う.
プログラムでネットワークの をリスニングするには、 の に います.
WIFIとGPRSが されているかどうかに じて の を するなど、 な を するReceiverリロードonReceive を します.connectionReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
Log.i(TAG, "unconnect");
// unconnect network
}else {
// connect network
}
}
};
connectionReceiverの を な で う