0
votes

Je veux vérifier l'état de la connectivité réseau et je suis bloqué lors de l'utilisation de la méthode getActiveNetworkInfo qui est dépréciée

Je voulais essentiellement savoir comment vérifier l'état de la connectivité Internet dans Android après la dépréciation des méthodes NetworkInfo au niveau de l'API 29.

J'ai essayé d'appeler la méthode getActiveNetworkInfo mais il est déprécié, toute aide rapide est très appréciée.

Je suis bloqué à ce stade ..

fun verifyIfNetworkAvailable(activity: AppCompatActivity):Boolean{

        var connectivityManager = activity.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
            var networkInfo = connectivityManager.isDefaultNetworkActive

            return networkInfo != null && networkInfo.isConnected

        }

par la façon dont j'utilise Kotlin .


1 commentaires

Veuillez modifier le sujet / titre en vérifier l'état de la connectivité Internet dans Android après la dépréciation des méthodes NetworkInfo au niveau de l'API 29


3 Réponses :


0
votes

allez-y avec celui-ci, PS pas le mien,

fun isWiFiConnected(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
return if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
    val network = connectivityManager.activeNetwork
    val capabilities = connectivityManager.getNetworkCapabilities(network)
    capabilities != null && (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI))
} else {
    connectivityManager.activeNetworkInfo.type == ConnectivityManager.TYPE_WIFI
}

}


0 commentaires

0
votes
La classe

NetworkInfo est obsolète au niveau de l'API 29. Ainsi, les méthodes qui retournent une instance pour NetworkInfo sont également obsolètes. Pour aller plus loin avec la nouvelle API, vous pouvez suivre le document qui dit: -

Les appelants doivent à la place utiliser l'API ConnectivityManager.NetworkCallback pour en savoir plus sur les changements de connectivité, ou utiliser ConnectivityManager # getNetworkCapabilities ou ConnectivityManager # getLinkProperties pour obtenir des informations de manière synchrone.

Veuillez consulter la documentation officielle pour Infos réseau et Connectivity Manager pour utilisation.


0 commentaires

1
votes

Vous pouvez vérifier la connexion Internet comme ça. si vous ne souhaitez pas vérifier la connectivité de l'appareil.

étape 1 ajoutez votre classe asynchrone

if (this.checkInternetConnection())
{
    //call service
}
else
{
 //handle no internet. Toast or dialog box.
}

étape 2 appelez cette tâche asynchrone c'est une fonction.

  private boolean checkInternetConnection()
    {
        try
        {
            return new GCInternetChecker().execute().get();
        }
        catch (Exception e)
        {
            return false;
        }
    }

étape 3 vérifiez Internet avant d'appeler votre service

public class YourInternetCheckerClass extends AsyncTask<Void, Void, Boolean>
{
    @Override
    protected Boolean doInBackground(Void... voids)
    {
        try
        {
            InetAddress ipAddr = InetAddress.getByName("www.google.com");
            return !ipAddr.equals("");

        }
        catch (Exception e)
        {
            Log.e("GCInternetChecker", e.toString());
            return false;
        }
    }
}


0 commentaires