2016-09-01 72 views
-2

我需要检查用户是否已连接CONNECTIVITY_SERVICE,因此下面的代码给出了返回isSourceAvailable为“true”的结果。Android检查网络认证

ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
     isSourceAvailable = (activeNetworkInfo != null && activeNetworkInfo.isConnected()); 

,但可能他没有通过认证,所以我试着用下面的代码,但它返回我“已完成”,而这是不被认证。

SupplicantState supplicantState; 
      WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE); 
      WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 
      supplicantState = wifiInfo.getSupplicantState(); 

enter image description here

回答

1

你必须添加此

ConnectivityManager CManager = 
    (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo NInfo = CManager.getActiveNetworkInfo(); 
if (NInfo != null && NInfo.isConnectedOrConnecting()) { 
    if (InetAddress.getByName("www.xy.com").isReachable(timeout)) 
    { 
    // host reachable true 
    } 
    else 
    {  
    // host not reachable false 
    } 
} 
return; 
+0

感谢Himani,但我已经尝试你的答案的替代,其通过的openConnection(),这是不是在我的情况下非常有用,因为它是网络任务。 –