java - 如何在 Android Studio 中更改已弃用的代码

标签 java android android-studio kotlin android-networking

我有一个代码来检查用户是否已连接

val connected:Boolean
        val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
        connected = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_VPN).state == NetworkInfo.State.CONNECTED

if(connected){
   
} else {
}

但每次我构建它时,它都会告诉我它已折旧。

如果有其他方法可以检查用户连接更改,请分享。

最佳答案

来自 Android 文档:

This method was deprecated in API level 23. This method does not support multiple connected networks of the same type. Use getAllNetworks() and getNetworkInfo(android.net.Network) instead.

在你的情况下你可能真的想要:

Network network = connectivityManager.getActiveNetwork();
NetworkCapabilities caps = connectivityManager.getNetworkCapabilities(network);
connected = caps.hasCapability(TRANSPORT_VPN) && network.isConnected();

关于java - 如何在 Android Studio 中更改已弃用的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54596492/

相关文章:

java - JLabel 无法正确显示 HTML

Android - 一些解压文件的大小为 0(空)

android - Android Studio 中的错误检测

android-studio - Android Gradle 依赖编译不适用于 Java 9

java - 我怎么知道java库路径?

java - 登录应用程序前进行 IP 地址验证

java - 如何克服 HTMLUnit ScriptException?

java - 应用程序打开后 Android 相机预览立即卡住

Android slider - 最大值和最大滑动值

java - 日期和时间选择器问题