NetworkInfo has been deprecated by API 29

NetworkInfo has been deprecated by API 29

Content Index :

NetworkInfo has been deprecated by API 29
Tag : android , By : rajiv
Date : November 29 2020, 12:01 PM

I think the issue was by ths following , It's deprecated base on Google Document
getActiveNetworkInfo is deprecated on API 29. getAllNetworkInfo is deprecated on API 23.
private fun checkNetworkState(context: Context): Boolean {
    val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        val nw      = connectivityManager.activeNetwork ?: return false
        val actNw = connectivityManager.getNetworkCapabilities(nw) ?: return false
        return when {
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
            else -> false
    } else {
        val nwInfo = connectivityManager.activeNetworkInfo ?: return false
        return nwInfo.isConnected

No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

NetworkInfo instantiation

Tag : android , By : krs
Date : March 29 2020, 07:55 AM
wish help you to fix your issue This constructor is hide. You can't instanciate it normally, but I think you can use reflection to use it.
From the source code
 * @hide
public NetworkInfo(int type, int subtype, String typeName, String subtypeName)

NetworkInfo Reflection

Tag : java , By : kdietz
Date : March 29 2020, 07:55 AM
hop of those help? You are using the the getConstructor correctly. I think you just don't have compatible versions of android SDK.
The javadoc for NetworkInfo doesn't show any constructors.

Difference between NetworkInfo.isConnected() and NetworkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTED.

Tag : java , By : Gabriel
Date : March 29 2020, 07:55 AM
hope this fix your issue So if we look at the source code of NetworkInfo.java class you will see that the network detailed states are declared as Enum,
public enum DetailedState {
        /** Ready to start data connection setup. */
        /** Searching for an available access point. */
        /** Currently setting up data connection. */
        /** Network link established, performing authentication. */
        /** Awaiting response from DHCP server in order to assign IP address information. */
        /** IP traffic should be available. */
        /** IP traffic is suspended */
        /** Currently tearing down data connection. */
        /** IP traffic not available. */
        /** Attempt to connect failed. */
        /** Access to this network is blocked. */
        /** Link has poor connectivity. */
        /** Checking if network is a captive portal */
public boolean isConnected() {
        synchronized (this) {
            return mState == State.CONNECTED;
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&

ConnectivityManager.getActiveNetworkInfo() / NetworkInfo is deprecated in API 29. What's an alternative?

Tag : android , By : Randoa
Date : March 29 2020, 07:55 AM
fixed the issue. Will look into that further Seem like whole NetworkInfo is deprecated on API 29. , The solution is this:
val capability = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
return capability?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) ?: false

NetworkInfo for VPN on Android API 21+

Tag : android , By : Boyer C.
Date : March 29 2020, 07:55 AM
Related Posts Related QUESTIONS :
  • Playing Multiple sounds at the same time in Android
  • Android: how to change the time in emulator?
  • close the soft key pad when i click on other views in android
  • Setting the position within a spinner
  • How to play ringtone/alarm sound in Android
  • How to adjust text font size to fit textview
  • "Android 2.x" vs "Google APIs" for Android AVD Setup
  • How to center buttons on screen horizontally and vertically plus equidistant apart?
  • Discrete seekbar in Android app?
  • Gradle Build Fails - Illegal exception table range in class file com/google/wireless/android/sdk/stats/GradleBuildMemory
  • register has type Long (High Half) but expected Long (Low Half)
  • Is it good idea to use Dispatcher.Main with delay( )?
  • WebView and Advanced View is Not loading partiucalr URL
  • How to show three dots at the end of text view
  • Is it possible to run macros within Android Studio project?
  • Adding a button with default appearance but changed background color
  • What is best way to show notification at a certain time in Android?
  • Jetifier not working when library uses android component and app uses androidx component
  • How can I write the contents of an image in a filesystem
  • Retrieve a list of images from the Database and display them using a ListView?
  • java.lang.SecurityException: my location requires permission ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION
  • Timer/hourglass wont stop
  • How can I make AndroidX the default library for new Android projects?
  • Is it okay to delete buildToolsVersion android studio because of a warning in the Asyncstorage library?
  • Can I call a class that doesn't have an activity withIntent?
  • Android TextView fontFamily not working when set via TextAppearance
  • Unable to find nearby places
  • Is there any way to launch my application right away without 'Ok Google"?
  • Places api set location biased based on current location
  • Layout Preview is not displaying layout when Material Design is added
  • How do I resolve this diamond problem in Kotlin?
  • How to update the custom value in a view model object
  • How to stop refreshing/re-creating activity when updating Firebase data using setValue?
  • Manifest Permissions vs App Setttings Permissions
  • NumberFormatException in Try-Catch while converting String to Int
  • How to pass observable fields through include tag?
  • Next button on Android keyboard not submitting form
  • Does Firestore support automatic functions for updates?
  • Why app crashing because of a missing dimension (for google maps) only when I apply changes?
  • How to make a grouping, ordering and sorting: Kotlin collection
  • how to use augmented reality to change the color of a qr code once it is detected using with arcore and ml kit firebase
  • how to resolve Firebase projects adding quota problem?
  • Why it Kotlin giving me the wrong Int value when converting from a String
  • How to add bottom navigation listeners to fragments
  • Why is scrollview hiding buttons behind other views?
  • Open Settings using Linking.sendIntent()
  • How do I access an unknown node in firebase while retrieving data?
  • Can't retrieve list of all users from firebase authetication
  • many activities with same content (adview, reward adview, functions...) how to avoid repeating code?
  • Popup doesn't hide when touch outside
  • proper way to handling images in Android? by using Firebase
  • Android: Button is faded gray when it should be transparent
  • Gradle DSL method not found: 'deleteAllActions()'
  • In Clean Architecture, must Repository is Android or Kotlin module?
  • Kotlin parse double from string
  • Inconsistency detected. Invalid view holder adapter positionViewHolder
  • In App Update API always returns 1 (UPDATE_NOT_AVAILABLE)
  • Event of ImageView when click
  • Basic precautions to prevent piracy?
  • What is the difference between 'center' and 'centerCrop' in the "ImageView"?
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com