activeNetworkInfo的字母已弃用,在Java中已弃用。该如何解决?
我在下面使用了代码,但是android studio告诉我'activeNetworkInfo'已过时。
申请清单:
minSdkVersion 21
targetSdkVersion 29
CREATE PROCEDURE [dbo].[GetStudents]
@id int = 0,
@name varchar(50),
@date //date here accepts list of datetime?
答案 0 :(得分:0)
使用此功能,
@RequiresApi(Build.VERSION_CODES.M)
fun provideIsNetworkAvailable(application: Application): Boolean{
private val applicationContext = application.applicationContext
val connectivityManager = applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetwork = connectivityManager.activeNetwork
connectivityManager.getNetworkCapabilities(activeNetwork).also {
return it!= null && it.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
}
}
答案 1 :(得分:0)
我正在使用此代码:
private fun isInternetAvailable(context: Context): Boolean {
var result = false
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val networkCapabilities = connectivityManager.activeNetwork ?: return false
val actNw =
connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false
result = when {
actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
else -> false
}
} else {
connectivityManager.run {
connectivityManager.activeNetworkInfo?.run {
result = when (type) {
ConnectivityManager.TYPE_WIFI -> true
ConnectivityManager.TYPE_MOBILE -> true
ConnectivityManager.TYPE_ETHERNET -> true
else -> false
}
}
}
}
return result
}
您可以查看下面的地址以获取详细信息。