搜尋

首頁  >  問答  >  主體

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

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

全部回覆(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
  • 取消回覆