Android getAllNetworkInfo()已弃用

Android getAllNetworkInfo()已弃用,android,networking,connection,android-6.0-marshmallow,Android,Networking,Connection,Android 6.0 Marshmallow,我写了这段代码 ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info !=

我写了这段代码

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

    if (connectivity != null) {
        NetworkInfo[] info = connectivity.getAllNetworkInfo();
        if (info != null) {
            for (int i = 0; i < info.length; i++) {
                if (info[i].getState() == NetworkInfo.State.CONNECTED) {}
但getAllNetworkInfo已被弃用。请帮忙。谢谢。

正如医生所说:

getAllNetworkInfo

此方法在API级别23中被弃用。此方法不支持同一类型的多个已连接网络。改用getAllNetworks和getNetworkInfoandroid.net.Network

我认为您可以使用getActiveNetworkInfo:

代码如下:

    ConnectivityManager connectivity = (ConnectivityManager)
            MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);

    if (connectivity != null) {
        NetworkInfo nInfo=connectivity.getActiveNetworkInfo();

        if (nInfo != null && nInfo.getState()== NetworkInfo.State.CONNECTED) {
            //do your thing
        }
    }
正如文件所说:

getAllNetworkInfo

此方法在API级别23中被弃用。此方法不支持同一类型的多个已连接网络。改用getAllNetworks和getNetworkInfoandroid.net.Network

我认为您可以使用getActiveNetworkInfo:

代码如下:

    ConnectivityManager connectivity = (ConnectivityManager)
            MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);

    if (connectivity != null) {
        NetworkInfo nInfo=connectivity.getActiveNetworkInfo();

        if (nInfo != null && nInfo.getState()== NetworkInfo.State.CONNECTED) {
            //do your thing
        }
    }
您可以使用此类检测internet连接。希望这对你有帮助

您可以使用此类检测internet连接。希望这能对您有所帮助。

请参阅我的答案:

您可以使用:

getActiveNetworkInfo

请参阅我的答案:

您可以使用:

getActiveNetworkInfo


你能发布例外吗?你能发布例外吗?
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null) { // connected to the internet
            if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                // connected to wifi
                Toast.makeText(context, activeNetwork.getTypeName(), Toast.LENGTH_SHORT).show();
            } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
                // connected to the mobile provider's data plan
                Toast.makeText(context, activeNetwork.getTypeName(), Toast.LENGTH_SHORT).show();
            }
        } else {
            // not connected to the internet
        }