cari

Rumah  >  Soal Jawab  >  teks badan

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

大家讲道理大家讲道理2886 hari yang lalu470

membalas semua(4)saya akan balas

  • 黄舟

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

    Semak API
    Saya masih ingat sama ada status rangkaian berada dalam ConnectivityManager dan NetworkInfo.

    balas
    0
  • 天蓬老师

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

    https://developer.android.goo...
    Paparkan status rangkaian mudah alih: mudah alih (rangkaian data), 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";
    }

    balas
    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
    }
    

    balas
    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;
    }

    balas
    0
  • Batalbalas