[안드로이드] 인터넷 연결상태 확인하는 방법



개발 하는 프로젝트중 인터넷이 연결 되었을땐 서버DB에서 값을 가져오고

연결이 되지 않았을땐 안드로이드의 sqlite에서 값을 가져와야 하는 기능이 있었다


그래서 찾아서 만들었다.




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
public class MainActivity extends AppCompatActivity {
    private WebView mWebView;
    private String myUrl = "file:///android_asset";
    public static final String WIFE_STATE = "WIFE";
    public static final String MOBILE_STATE = "MOBILE";
    public static final String NONE_STATE = "NONE";
    private boolean newtwork = true;
 
 
    @Override
 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 앱 실행시 체크
        String getNetwork =  getWhatKindOfNetwork(getApplication());
        if(getNetwork.equals("NONE")){
            newtwork = false;
        }
 
    }
 
    // 인터넷 
    public static String getWhatKindOfNetwork(Context context){
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null) {
            if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                return WIFE_STATE;
            } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
                return MOBILE_STATE;
            }
        }
        return NONE_STATE;
    }
}
 
cs




일반적인 메인액티비티에 담았다


원래는 저기에 웹뷰셋팅이나 sqlite관련된 소스들도 있는데 보기 힘드니까 다 지움


중요한건 인터넷이 연결된 상태인지만 체크 하는 것


4~7번은 그냥 편의를 위해 전역변수로 지정해놨는데 사용하지 않아도 된다.


25번의 메소드에서 단순하게 true false만 반환해줘도 되는데


저렇게 쓰면 현재 연결된게 와이파이 인지 모바일네트워크인지 구분이 가능하기 때문에 넣은 것.




+ Recent posts