2017-09-07 1 views
0

안드로이드 스튜디오 프로젝트에서이 클래스를 사용한다는 이유로 활성 인터넷을 확인하고 싶습니다. 그 일하지만. 문제는 연결을 사용할 수없는 경우에만 작동합니다. 하지만 연결이 활성화되어 있고 실행할 수있을 때만 true를 반환하고 싶습니다. 응용 프로그램이 webview와 함께 작동하고 연결이 주간 또는 활성 상태가 아니기 때문에 도달 할 수없는 오류가 표시되기 때문입니다. WiFi로 가장 많이 일어나고 있습니다.WiFi 및 모바일 데이터 확인하기

public boolean isConnected(Context context) { 

    ConnectivityManager cm = (ConnectivityManager) 
    context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netinfo = cm.getActiveNetworkInfo(); 

    if (netinfo != null && netinfo.isConnectedOrConnecting()) { 
    android.net.NetworkInfo wifi = 
    cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    android.net.NetworkInfo mobile = 
    cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

    if((mobile != null && mobile.isConnectedOrConnecting()) || (wifi != null && 
    wifi.isConnectedOrConnecting())) 
    { 
    return true; 
    } 
    else { 
    return false; 
    } 
    } else{ 
    return false; 
    } 
} 
+0

isConnectedOrConnecting()으로 충분합니다. 연결 유형을 어떻게 확인할 것입니까? – Mehdi

답변

0

사용이 기능

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

도움이 사용하십시오 매니페스트

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

이 내 작업 코드에서 사용하고 무엇을 :

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

것은 기억 매니페스트에 네트워크 상태를 추가하려면 pe rmission

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

하고, 응용 프로그램에서 인터넷을 사용해야 할 경우,이 추가 고려 :이

을하는 데 도움이 희망 네트워크 권한에 대한 공식 문서에 대한

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

당신은 또한 참조 할 수 to this link

+0

나는 진실 또는 거짓만을 돌려 주길 원한다. – Swister

+0

@Swister는 내가 언급 한 첫 번째 퍼미션을 언급하고 내가 위에 올린 메소드를 호출하여 온라인 상태라면 사실이 아니고, 그렇지 않으면 거짓이된다. –

관련 문제