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

조회수 3711회

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

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" />
    

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)