【发布时间】:2019-10-14 16:09:39
【问题描述】:
我想删除在 m 版本下面的代码中显示的警告。我使用了下面的代码,它运行良好,但仍然想删除在 ConnectivityManager.TYPE_WIFI 行中显示的警告。可以删除下面的警告也显示在 kotlin 编译器中??
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
cm?.run {
cm.getNetworkCapabilities(cm.activeNetwork)?.run {
if (hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
return true
} else if (hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
return true
}
}
}
} else {
cm?.run {
cm.activeNetworkInfo?.run {
if (type == ConnectivityManager.TYPE_WIFI) {
return true
} else if (type == ConnectivityManager.TYPE_MOBILE) {
return true
}
}
}
}
警告:- 'getter for type: Int' 已弃用。
【问题讨论】:
-
TL;DR:我不认为你可以。 Lint 目前不检查弃用的代码(仅弃用的 xml 属性和库:android.googlesource.com/platform/tools/base/+log/…),因此 Java/Kotlin 编译器通过查找 @Deprecated 注释来检查弃用。您需要进行检查,知道这是特定 Android 版本 (
-
是的,我想更改版本 16 的 else 条件代码,以便可以删除警告,并且我可以检查网络状况而不会在 29 版本上发出弃用警告。
-
我之前检查过这个链接。请在评论之前仔细检查代码是否重复。我想支持所有版本,不仅是 NetworkCapabilities 支持的 M 版本以上。
标签: android kotlin android-connectivitymanager