1. Android에서 Network 상태를 확인 하는 샘플 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
 
/**
 * Android에서 Network 상태를 확인 하는 클래스
 * @author dennis.seo
 */
public class NetworkManager {
        
    /**
     * Check network connectivity (wi-fi)
     * @param context
     * @return connected state
     */
    public static boolean isWifiConnected(Context context) {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if(activeNetworkInfo != null && activeNetworkInfo.isAvailable() && activeNetworkInfo.isConnected()) return true;
        return false;
    }
    
    /**
     * Check network connectivity (mobile)
     * @param context
     * @return connected state
     */
    public static boolean isMobileConnected(Context context) {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if(networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected()) return true;
        return false;
    }
    
    /**
     * Check network connectivity (mobile, wi-fi)
     * @return connected state
     */
    public static boolean isOnline(Context context) { // network 연결 상태 확인
        boolean connected = false;
        
        if(isWifiConnected(context)) 
            return true;
        if(isMobileConnected(context))
            return true;
        
        return connected;
    }
}
 



2. 네트워크 상태 변화에 대한 BroadcastReceiver


1
2
3
4
5
6
7
8
9
// BroadcastReceiver.onReceiver override
@Override
public void onReceiver(Context context, Intent intent) {
    String action = intent.getAction();
    if ( action.equals(ConnectivityManager.CONNECTIVITY_ACTION) ) {
        // 네트워크에 변화가 생길때 마다 이 코드 안으로 들어온다.
        // 여기에 하고 싶은 걸 넣으면 된다. 
    }
}


Posted by 소망아기
: