본문 바로가기

나의 플랫폼/안드로이드

[Android] ConnectivityManager getNetworkInfo(int) deprecated

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

아래와 같은 소스를 이용하여 네트워크가 Wifi/Mobile 인지 체크를 하였습니다. 네트워크 상태도 체크를 하였구요.



public static boolean isWifiConnected(Context context) {
        ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (ni != null && ni.isAvailable() && ni.isConnected())
            return true;
        else
            return false;
    }

    public static boolean isMobileConnected(Context context) {
        ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if(ni != null && ni.isAvailable() && ni.isConnected())
            return true;
        else
            return false;
    }

    public static boolean isOnline(Context context) {
        boolean connected = false;

        if(isWifiConnected(context))
            return true;
        if(isMobileConnected(context))
            return true;

        return connected;
    }

 


하지만 getNetworkInfo(int)가 deprecated 되었습니다.

당연히 대체 함수가 았습니다.


ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null) { // connected to the internet
            if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                // connected to wifi
                Toast.makeText(context, activeNetwork.getTypeName(), Toast.LENGTH_SHORT).show();
            } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
                // connected to the mobile provider's data plan
                Toast.makeText(context, activeNetwork.getTypeName(), Toast.LENGTH_SHORT).show();
            }
        } else {
            // not connected to the internet
        }

출처 : http://stackoverflow.com/a/32771164/3534559


getType 함수를 이용하면 현재 네트워크 연결이 어디로 되어 있는지 확인이 가능 합니다.

참고하세요.