我该如何检查设备是否可以通过活动的WiFi连接访问互联网?

3

我正在谈论的是设备连接到接入点,但由于某种原因被阻止使用该接入点访问互联网的情况。

3个回答

1

检查 WiFi 是否已启用

 WifiManager wfManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if(wfManager.isWifiEnabled())
{
    //Code
}
else  
{
 //Code
 }

检查网络连接...

public boolean isOnline() 
{
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
     NetworkInfo netInfo = cm.getActiveNetworkInfo();

    if (netInfo != null && netInfo.isConnectedOrConnecting()) 
    {
            //Try This 
            int i =netInfo.getType() ; 
            System.out.println("Net Type ="+i);    

            return true;
    }
    return false;

}

这并不是我需要的准确信息 - WiFi连接状态为“已连接”意味着设备已连接到AP,但不一定能够访问互联网。 - Asahi
netInfo.getType();尝试使用此方法,但我没有确切地使用过,因此不知道wifi或移动互联网的值是什么。有关更多信息,请访问以下链接:http://developer.android.com/reference/android/net/NetworkInfo.html#getType%28%29 - Niranj Patel
不是真的,亲爱的...所有这些API都提供有关连接到AP的信息,但没有办法确定它是否可以进一步进行。还在寻找中... - Asahi
我认为它只会回复两个值,所以可以使用Wi-Fi和手机网络逐一测试,这样您就可以确切地了解哪个值是Wi-Fi或移动网络的。 - Niranj Patel

0
private boolean connectionAvailable() {
    boolean connected = false;
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
        //we are connected to a network
        connected = true;
    }
    return connected;
}

这并不完全是我需要的 - WiFi连接状态为CONNECTED意味着设备已连接到AP,但不一定能够访问互联网。 - Asahi
好的,所以你想检查WiFi是否正在访问互联网。我对此一无所知。 - Dharmendra


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接