Adopt new APIs for network connectivity check.

Addresses #12941
This commit is contained in:
g1a55er
2023-05-18 05:24:51 -04:00
committed by Cody Henthorne
parent 7ea9fc0c3b
commit de4c6ab7b7

View File

@@ -4,7 +4,10 @@ import android.app.Application;
import android.app.job.JobInfo;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -45,9 +48,15 @@ public class NetworkConstraint implements Constraint {
public static boolean isMet(@NonNull Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
if (Build.VERSION.SDK_INT >= 23) {
Network activeNetwork = connectivityManager.getActiveNetwork();
NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
return networkCapabilities != null && networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
} else {
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
}
public static final class Factory implements Constraint.Factory<NetworkConstraint> {