我能检查手机是否连接到wifi路由器但是如何检查路由器是否访问互联网?如果手机连接到路由器然后它返回true但不检查互联网访问PLZ帮助......
public boolean isInternetAvailable() {
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
{
for (int i = 0; i < info.length; i++)
// if (info[i].(info[i].getState() == NetworkInfo.State.CONNECTED)
if(info[i]!=null && info[i].isAvailable() && info[i].isConnected())
{
try {
if (InetAddress.getByName("https://www.google.co.in").isReachable(3000))
{
return true;
}
else
{
return false;
// host not reachable
}
} catch (IOException e) {
e.printStackTrace();
}
Log.i("Network Info", info[i].toString());
return true;
}
}
return false;
}
return false;
}
}
答案 0 :(得分:-2)
使用此功能。它将检查互联网连接的实际状态是否正在运行。
注意此功能将ping到Google公共DNS服务器以检查连接。因此,当DNS服务器关闭时,它不保证给出正确的结果。虽然谷歌DNS服务器每次都在线,所以我们可以相信它。
public boolean isOnline() {
Runtime runtime = Runtime.getRuntime();
try {
Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
int exitValue = ipProcess.waitFor();
return (exitValue == 0);
} catch (IOException e){
e.printStackTrace();
} catch (InterruptedException e){
e.printStackTrace();
}
return false;
}