2013-08-30 4 views
0

Android에서 LocationManager와의 네트워크 연결을 확인하고 싶습니다. 내 코드는 Galaxy SII 및 Version 4.0.3에서 잘 작동합니다. 그러나 Galaxy S 및 버전 2.3.6에서는 작동하지 않습니다.Android에서 LocationManager와의 네트워크 연결을 확인하십시오.

코드 :

isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

내가 확실히 Wi-Fi 네트워크에 연결하고 있습니다. 하지만 if 문

if (!isGPSEnabled && !isNetworkEnabled) 

이 true를 반환합니다. 알려진 버그가 있으며이를 확인하는 신뢰할 수있는 방법이 있습니까?

+0

위치 제공 업체 및 네트워크 [연결] (http://developer.android.com/reference/android/net/ConnectivityManager.html)는 다른 것입니다. 하나는 사용자가 시스템 설정에서 GPS/네트워크 위치 추적을 사용할 수 있는지 여부를 알려주고, 다른 하나는 인터넷에 연결되어 있는지 여부를 알려줍니다. – zapl

답변

1

이 밖으로 시도 :

//If you only want to check your Internet connection available or not  
     public static boolean isNetworkAvailable(Context context) { 
     ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
         NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
         return activeNetworkInfo != null && activeNetworkInfo.isConnected();} 

: wifiInfo 당신에게 상태를 제공하여 와이파이에 대해, 아직 거기 가난한 연결됩니다 나는 그것이 좋은 경우에하는 것 생각 HTTP reuest, 자세한 내용은 제공된 링크를 확인하십시오.

편집 : 당신이 [이 참조] 할 수 있습니다 자세한 내용은 [1].

0

내 모든 안드로이드 프로젝트에서 아래 코드를 사용하고 있습니다. 나가는 연결에 사용되는 활성 네트워크가 있는지 확인합니다.

public static boolean isNetworkAvailable(Context context) 
    { 
     ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = cm.getActiveNetworkInfo(); 

     if (networkInfo != null && networkInfo.isConnectedOrConnecting()) 
      return true; 

     return false; 
    } 
0

사용이 코드 :

public static boolean checkConn(Context ctx) 
{ 

    ConnectivityManager conMgr = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 

    NetworkInfo wifiInfo = conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    NetworkInfo mobileInfo = conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  
    NetworkInfo info = conMgr.getActiveNetworkInfo(); 

    if(info != null && info.isConnected()) { 
     Log.v("NetworkInfo","Connected State"); 
     return true; 
    } 
    return false; 
} 
관련 문제