搜索

首页  >  问答  >  正文

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

大家讲道理大家讲道理2886 天前475

全部回复(4)我来回复

  • 黄舟

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

    查api吧
    我记得网络状态有无是在ConnectivityManager和NetworkInfo吧。

    回复
    0
  • 天蓬老师

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

    https://developer.android.goo...
    显示手机网络状态:mobile(数据网络),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";
    }

    回复
    0
  • 高洛峰

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

    雷雷


    雷雷

    回复
    0
  • 巴扎黑

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

    雷雷

    回复
    0
  • 取消回复