search

Home  >  Q&A  >  body text

java - android开发中怎么获取手机网络状态?

大家讲道理大家讲道理2886 days ago472

reply all(4)I'll reply

  • 黄舟

    黄舟2017-04-18 10:43:39

    Check the API
    I remember whether the network status is in ConnectivityManager and NetworkInfo.

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:43:39

    https://developer.android.goo...
    Display mobile network status: mobile (data network), wifi

    public String netstat() {
        try {
            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
            if (activeNetworkInfo != null && activeNetworkInfo.isAvailable() && activeNetworkInfo.getState() == NetworkInfo.State.CONNECTED) {
                if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
                    return "mobile";
                } else if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
                    WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
                    int ip = wm.getConnectionInfo().getIpAddress();
                    if (ip == 0) {
                        return "wifi";
                    } else {
                        return "wifi:" + ((ip & 0xff) + "." + (ip >> 8 & 0xff) + "." + (ip >> 16 & 0xff) + "." + (ip >> 24 & 0xff));
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "offline";
    }

    reply
    0
  • 高洛峰

    高洛峰2017-04-18 10:43:39

    public static int getNetType(Context context)
        {
            int netType = -1;
            ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
            if(networkInfo==null)
            {
                return netType;
            }
            return networkInfo.getType();
        }

    switch(getNetType(context)){
        case wifi: break
        //TODO
    }
    

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:43:39

    public static boolean isWifiConnected(Context context) {
            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = cm.getActiveNetworkInfo();
            return networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI;
    }

    reply
    0
  • Cancelreply