프로그래밍 언어/Android

Android에서 사용할 수 있는 인터넷 연결이 있는지 확인하는 방법

Rateye 2021. 10. 26. 10:41
728x90
반응형
질문 : Android에서 사용할 수있는 인터넷 연결이 있는지 감지

중복 가능성 :
Android에서 인터넷 액세스를 확인하는 방법은 무엇입니까? InetAddress는 시간 초과되지 않습니다.

Android 기기가 인터넷에 연결되어 있는지 감지해야합니다.

NetworkInfo 클래스는 완벽하게 들리는 비 정적 메서드 isAvailable() 을 제공합니다.

문제는 다음과 같습니다.

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

이 오류가 발생합니다.

The constructor NetworkInfo is not visible.
    

NetworkInfo 객체를 반환하는 다른 클래스가 있다는 것입니다. 그러나 나는 무엇을 모른다.

답변

ConnectivityManagergetActiveNetworkInfo() 메서드는 찾을 수있는 첫 번째 연결된 네트워크 인터페이스를 나타내는 NetworkInfo 인스턴스를 반환하거나 인터페이스가 연결되지 않은 경우 null 이 메서드가 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" />

당신의 안드로이드 매니페스트에서.

편집하다:

활성 네트워크 인터페이스가 있다고해서 특정 네트워크 서비스를 사용할 수 있다는 보장은 없습니다. 네트워크 문제, 서버 다운 타임, 낮은 신호, 종속 포털, 콘텐츠 필터 등으로 인해 앱이 서버에 도달하지 못할 수 있습니다. 예를 들어 트위터 서비스에서 유효한 응답을받을 때까지 앱이 트위터에 도달 할 수 있는지 여부를 확인할 수 없습니다.

출처 : https://stackoverflow.com/questions/4238921/detect-whether-there-is-an-internet-connection-available-on-android
728x90
반응형