ConnectivityManager.TYPE_WIFI在 Android P API 28 中已弃用。此外,NetworkInfo#getType和 ConnectivityManager.TYPE_MOBILE的也已弃用。
那么,他们的替代方案是什么?我知道我们必须使用 NetworkCapabilities 类中的方法。但是,我无法将所有内容合并到一个地方,例如如何在 NetworkCapabilities 类中执行 getType() 以及如何在其上添加 WIFI 和蜂窝数据检查?
请协助。
最佳答案
您可以使用下面的代码 fragment 来检查您是否有 Wifi 连接或蜂窝网络:
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
Network network = connectivityManager.getActiveNetwork();
NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);
return capabilities != null && (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR));
}
关于android - Android P API 28 中弃用的 ConnectivityManager.TYPE_WIFI 的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52816443/