출처 : http://www.mtalking.com/?p=403
안드로이드 device 에서 3G나 WIFI 연결 정보를 알아볼때 사용 우선 AndroidManifest.xml에 " android.permission.ACCESS_NETWORK_STATE " permission이 필요하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
ConnectivityManager cManager; NetworkInfo mobile; NetworkInfo wifi; cManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); mobile = cManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); wifi = cManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mobile.isConnected()){ //3G 연결되있음. } if (wifi.isCOnnected()){ //wifi 연결되있음. } |
위 코드는 필요시 한번 정보를 가지고 오면 끝이다.
그러나 네트워크 상황이 변화될때마다 특정 작업을 수행해야 한다면 다음과 같이 해야한다.
우선 BroadcastReceiver를 상속받는 class 를 만든다 ex)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 |
public class TestReceiver extends BroadcastReceiver { String action; @Override public void onReceive(Context context, Intent intent) { action=intent.getAction(); Log.d( "TestReceiver" , "action : " + action); if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)){ /* 네트워크 변화가 생길때마다 이쪽으로 들어온다. */ } } } |
그다음 AndroidManifest.xml에 등록을 해준다. ex)
1
2
3
4
5 |
< receiver android:name = ".TestReceiver" > < intent-filter > < action android:name = "android.net.conn.CONNECTIVITY_CHANGE" /> </ intent-filter > </ receiver > |