/**
* 데이터 네트워크 또는 WIFI로 네트워크 연결 여부 반환.
* @param context {@link Context}
* @return true : 데이터 네트워크 또는 WIFI로 네트워크 연결 중이거나 연결 됨, false : 네트워크 연결 안됨
*/
public static boolean isConnectNetwork(Context context){
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
Network n = cm.getActiveNetwork();
NetworkInfo ni = cm.getNetworkInfo(n);
int type = ni.getType();
switch (type){
case ConnectivityManager.TYPE_MOBILE:
return true;
case ConnectivityManager.TYPE_WIFI:
return true;
case ConnectivityManager.TYPE_WIMAX:
return false;
case ConnectivityManager.TYPE_ETHERNET:
return false;
case ConnectivityManager.TYPE_BLUETOOTH:
return false;
default:
return false;
}
}else {
// wifi 연결 상태 확인
NetworkInfo.State wifi = cm.getNetworkInfo(1).getState();
if (wifi != null) {
if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
return true;
}
}
// 데이터네트워크 연결 상태 확인
NetworkInfo.State mobile = cm.getNetworkInfo(0).getState();
if (mobile != null) {
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
return true;
}
}
return false;
}
}
/**
* WIFI로 네트워크 연결 여부 반환.
* @param context {@link Context}
* @return true : WIFI로 네트워크 연결 중이거나 연결 됨, false : WIFI로 네트워크 연결 안됨
*/
public static boolean isConnectWifi(Context context){
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
Network n = cm.getActiveNetwork();
NetworkInfo ni = cm.getNetworkInfo(n);
int type = ni.getType();
switch (type){
case ConnectivityManager.TYPE_MOBILE:
return false;
case ConnectivityManager.TYPE_WIFI:
return true;
case ConnectivityManager.TYPE_WIMAX:
return false;
case ConnectivityManager.TYPE_ETHERNET:
return false;
case ConnectivityManager.TYPE_BLUETOOTH:
return false;
default:
return false;
}
}else {
try {
// wifi 연결 상태 확인
NetworkInfo.State wifi = cm.getNetworkInfo(1).getState();
if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
return true;
}
return false;
} catch (NullPointerException e) {
return false;
}
}
}
/**
* 데이터 네트워크로 네트워크 연결 여부 반환.
* @param context {@link Context}
* @return true : 데이터 네트워크로 네트워크 연결 중이거나 연결 됨, false : 데이터 네트워크로 네트워크 연결 안됨
*/
public static boolean isConnectMobileData(Context context){
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
Network n = cm.getActiveNetwork();
NetworkInfo ni = cm.getNetworkInfo(n);
int type = ni.getType();
switch (type){
case ConnectivityManager.TYPE_MOBILE:
return true;
case ConnectivityManager.TYPE_WIFI:
return false;
case ConnectivityManager.TYPE_WIMAX:
return false;
case ConnectivityManager.TYPE_ETHERNET:
return false;
case ConnectivityManager.TYPE_BLUETOOTH:
return false;
default:
return false;
}
}else {
try {
// 데이터네트워크 연결 상태 확인
NetworkInfo.State mobile = cm.getNetworkInfo(0).getState();
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
return true;
}
return false;
} catch (NullPointerException e) {
return false;
}
}
}