@@ -7,6 +7,8 @@ import android.net.ConnectivityManager
7
7
import android.net.ConnectivityManager.NetworkCallback
8
8
import android.net.Network
9
9
import android.net.NetworkCapabilities
10
+ import android.net.NetworkRequest
11
+ import android.os.Build
10
12
import android.os.Bundle
11
13
import android.util.Log
12
14
import android.view.KeyEvent
@@ -22,6 +24,7 @@ import com.journeyapps.barcodescanner.ScanOptions
22
24
import org.json.JSONObject
23
25
import java.net.URL
24
26
27
+
25
28
class MainActivity : ComponentActivity () {
26
29
27
30
// Site entry-point. Only URLs on this domain are considered local for the app.
@@ -73,15 +76,11 @@ class MainActivity : ComponentActivity() {
73
76
return super .onKeyDown(keyCode, event)
74
77
}
75
78
79
+ @Suppress(" DEPRECATION" )
76
80
private fun isNetworkAvailable (): Boolean {
77
81
val connectivityManager = getSystemService(CONNECTIVITY_SERVICE ) as ConnectivityManager
78
- val nw = connectivityManager.activeNetwork ? : return false
79
- val actNw = connectivityManager.getNetworkCapabilities(nw)
80
- return actNw != null && (actNw.hasTransport(NetworkCapabilities .TRANSPORT_WIFI ) || actNw.hasTransport(
81
- NetworkCapabilities .TRANSPORT_CELLULAR
82
- ) || actNw.hasTransport(NetworkCapabilities .TRANSPORT_ETHERNET ) || actNw.hasTransport(
83
- NetworkCapabilities .TRANSPORT_VPN
84
- ))
82
+ val ni = connectivityManager.activeNetworkInfo ? : return false
83
+ return ni.isConnected
85
84
}
86
85
87
86
@Suppress(" UNUSED_PARAMETER" )
@@ -218,7 +217,14 @@ class MainActivity : ComponentActivity() {
218
217
runOnUiThread { setOnline(false ) }
219
218
}
220
219
}
221
- connectivityManager.registerDefaultNetworkCallback(networkCallback)
220
+ // https://stackoverflow.com/a/58468010
221
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .N ) {
222
+ connectivityManager.registerDefaultNetworkCallback(networkCallback)
223
+ } else {
224
+ val request = NetworkRequest .Builder ()
225
+ .addCapability(NetworkCapabilities .NET_CAPABILITY_INTERNET ).build()
226
+ connectivityManager.registerNetworkCallback(request, networkCallback)
227
+ }
222
228
}
223
229
224
230
private fun setOnline (online : Boolean ) {
0 commit comments