Java 如果我在kotlin中实现如下的网络检查,会出现什么情况?
在进行API调用之前,我试图检查我的Internet可用性。但是我发现有些方法被弃用了,所以我自己找到了一个解决方案,效果很好。但需要知道它的长期使用Java 如果我在kotlin中实现如下的网络检查,会出现什么情况?,java,android,networking,kotlin,Java,Android,Networking,Kotlin,在进行API调用之前,我试图检查我的Internet可用性。但是我发现有些方法被弃用了,所以我自己找到了一个解决方案,效果很好。但需要知道它的长期使用 fun isNetworkAvailable(context: Context): Boolean { var isNetwork: Boolean = false val connectivityManager = context .getSystemService(Context.CON
fun isNetworkAvailable(context: Context): Boolean {
var isNetwork: Boolean = false
val connectivityManager = context
.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetwork = connectivityManager.activeNetwork
if (activeNetwork == null) {
isNetwork = false
Toast.makeText(context, "What can we do to that ?", Toast.LENGTH_SHORT).show()
//Here we can show no network screen
} else {
isNetwork = true
}
return isNetwork
}
如果设备未连接到internet,activeNetwork
将变为空。这是一种正确的实施方式吗?需要你的专业知识 试试这个:
fun isInternetConnected(context: Context): Boolean {
return try {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val network = connectivityManager.activeNetwork
val capabilities = connectivityManager.getNetworkCapabilities(network)
capabilities != null &&
(capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR))
} else {
(context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager).activeNetworkInfo?.isConnected == true
}
} catch (e: Exception) {
e.printStackTrace()
false
}
}
这里还显示了一个不推荐使用的方法<代码>activeNetworkInfo的获取程序:NetworkInfo!不推荐使用。在java中已弃用代码>我担心这些方法。这种不推荐的方法只适用于运行低于Marshmello的Android版本的设备。这就是为什么我将其置于if-else条件下。那么使用这种方法可以吗?对我的实现有什么看法,为什么它不是一个理想的方式?