Wifi 已连接但无法正常工作

Wifi connected but not working

我正在创建一个依赖互联网的 android 应用程序。如何处理 phone 已连接到 Wifi 但实际无法使用的情况? 如 StatusBar?

中 wifi 图标旁边有感叹号的情况

添加权限:

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

试试这个方法:

public boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        try {
            URL url = new URL("http://www.google.com");
            HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
            urlc.setConnectTimeout(3000);
            urlc.connect();
            if (urlc.getResponseCode() == 200) {
                return new Boolean(true);
            }
        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    return false;
}

您可以检测 wifi 速度,如果速度很慢,您可以处理这种情况。

首先,检查您的连接类型是否为wifi-

 ConnectivityManager cm =
        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

 NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
 boolean isConnected = activeNetwork != null &&
 activeNetwork.isConnectedOrConnecting();
 boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

 if(isWifi){
     WifiInfo wifiInfo = wifiManger.getConnectionInfo();
     int mbps = wifiInfo.getLinkSpeed();
 }