디바이스가 인터넷에 연결되있는지 체크하는 법

디바이스가 인터넷에 연결되있는지 확인하고 싶은데요.

NetworkInfo클래스에 isAvailable()이라는 메소드가 있는데 이거 쓰면 될것 같은데요..

NetworkInfo ni = new NetworkInfo();
if (!ni.isAvailable()) {
    // do something
}

The constructor NetworkInfo is not visible.

이런 에러가 나더라고요. NetworkInfo를 얻어올 수 있는 다른 방법이 있을까요?

  1. 위의 방법으로 잘 동작하는 코드
  2. 제가 혼자서 보고 참고할만한 사이트
  3. 다른 좋은 방법 이 있으면 알려주시면 감사하겠습니다.

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    ConnectivityManagergetActiveNetworkInfo()를 쓰면 인터넷이 연결되있으면 NetworkInfo 인스턴스를 리턴하거나 null을 리턴합니다.

    이 리턴 값으로 인터넷이 연결되있는지 확인 할 수가 있죠.

    private boolean isNetworkAvailable() {
        ConnectivityManager connectivityManager 
              = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
    

    소스를 참고하세요

    아! 그리고

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    안드로이드 매니페스트 파일로 가서 위 코드를 꼭 삽입해야해요.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.