Android 9.0以降を含むすべてのバージョンのAndroidのネットワーク可用性を確認するためのこのコード:
public static boolean isNetworkConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
// For 29 api or above
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) ||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR);
} else return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
マニフェストにネットワーク状態のアクセス許可を追加することを忘れないでください
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
また、Android Studioの非推奨の警告を回避するために、メソッドの前に@SuppressWarnings( "deprecation")を追加してください。