프로그래밍/안드로이드

안드로이드 인터넷연결체크 ( 3g/lte/wifi ) 메서드

가카리 2014. 5. 15. 15:35
반응형

스마트폰이 아닌 태블릿에서 NullPointE~ 를 피하려면 아래와 같이 작성해서 사용하시면 됩니다.

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
public static boolean isNetworkStat( Context context ) {
              ConnectivityManager manager =
                 (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
              NetworkInfo mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
              NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
              NetworkInfo lte_4g = manager.getNetworkInfo(ConnectivityManager.TYPE_WIMAX);
              boolean blte_4g = false;
              if(lte_4g != null)                            
                  blte_4g = lte_4g.isConnected();
              if( mobile != null ) {
                  if (mobile.isConnected() || wifi.isConnected() || blte_4g)
                        return true;
              } else {
                  if ( wifi.isConnected() || blte_4g )
                        return true;
              }
               
              AlertDialog.Builder dlg = new AlertDialog.Builder(context);
              dlg.setTitle("네트워크 오류");
              dlg.setMessage("네트워크 상태를 확인해 주십시요.");
              dlg.setIcon(R.drawable.ic_launcher);
              dlg.setNegativeButton("확인", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {     
                            dialog.dismiss();
                        }
                  });
              dlg.show();
              return false;

 

 

위 내용으로 WIFI만 제공되는 태블릿에서 뻗는 문제 해결했습니다.

 

WIFI만 가능한 태블릿에서 manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);을하게되면 NULL 값을 가져오게

됩니다.

 

이부분을 유의해서 꼭 코딩하셔야합니다.

 

 

출처 : http://osankkk.tistory.com/entry/s

반응형