[android] 네트워크 상태가 변경 될 때 마다 실시간 확인 방법. (BroadcastReceiver 사용)
네트워크가 변경되었을 때 실시간으로 앱에서 하고 싶은 동작을 할 수 있다.
[AndroidManifest.xml]
activity와 동등한 단계에 추가.
[appNetwork.java]
[java 파일]
[AndroidManifest.xml]
activity와 동등한 단계에 추가.
1 2 3 4 5 | <receiver android:name = "appNetwork"> <intent-filter> <action android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED"/> </intent-filter> </receiver> |
[appNetwork.java]
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 | public class appNetwork extends BroadcastReceiver { private Activity activity; public appNetwork() { super(); } public appNetwork(Activity activity) { this.activity = activity; } @Override public void onReceive(Context context, Intent intent) { String action= intent.getAction(); if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { try { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); NetworkInfo _wifi_network = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if(_wifi_network != null) { // wifi, 3g 둘 중 하나라도 있을 경우 if(_wifi_network != null && activeNetInfo != null){ } // wifi, 3g 둘 다 없을 경우 else{ } } } catch (Exception e) { Log.i("ULNetworkReceiver", e.getMessage()); } } } } |
[java 파일]
1 2 3 | IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); appNetwork receiver = new appNetwork(this); registerReceiver(receiver, filter); |
'옛날' 카테고리의 다른 글
Webview 소스 [Android] (0) | 2015.12.11 |
---|---|
안드로이드에서 웹서버에 post로 글쓰기 [Android] (0) | 2015.12.11 |
Tabhost custom [Android] (0) | 2015.12.11 |
TabActivity back key Event [Android] (0) | 2015.12.11 |
다른앱 호출 [Android] (0) | 2015.12.11 |