1. ホーム
  2. android

[解決済み] ConnectivityManager getNetworkInfo(int) deprecated

2022-04-22 08:05:44

質問

使用方法 コンパイルSdkバージョン23 しかし、9までサポートしようとしています。

getNetworkInfo(int) は23で非推奨となりました。提案されたのは getAllNetworks() getNetworkInfo(Network) の代わりに ただし、どちらも最低限API21が必要です。

サポートパッケージで使用できる、これを支援するクラスはありますか?

解決策が提案されたことは知っています 以前 しかし、私の最小限のAPI要件である9が問題になっています。

解決方法は?

使用することができます。

<ブロッククオート

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
    } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
        // connected to mobile data
    }
} else {
    // not connected to the internet
}

あるいは、スイッチの場合

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) { 
    // connected to the internet
    switch (activeNetwork.getType()) {
        case ConnectivityManager.TYPE_WIFI:
            // connected to wifi
            break;
        case ConnectivityManager.TYPE_MOBILE:
            // connected to mobile data
            break;
        default:
            break;
    }
} else {
    // not connected to the internet
}