android - 'connectionInfo : WifiInfo! 的 getter' 已被弃用。在 Java (Api 31) 中已弃用

标签 android wifimanager android-12 android-api-31

当我想通过 WifiManager.connectionInfo 获取有关当前 wifi 连接的信息时,我得到
这个:

'getter for connectionInfo: WifiInfo!' is deprecated. Deprecated in Java


我怎样才能在 Android 12 中做到这一点? (只想获取rssi)

最佳答案

从 Build.VERSION_CODES#S 开始,WifiInfo 检索被移动到 ConnectivityManager API 表面。 WifiInfo 附加在 NetworkCapabilities#getTransportInfo() 中,可通过 NetworkCallback#onCapabilitiesChanged(Network, NetworkCapabilities) 中的回调或 ConnectivityManager#getNetworkCapabilities(Network) 按需提供。

final NetworkRequest request =
       new NetworkRequest.Builder()
       .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
       .build();
  final ConnectivityManager connectivityManager =
       context.getSystemService(ConnectivityManager.class);
  final NetworkCallback networkCallback = new NetworkCallback() {
       ...
       @Override
       void onAvailable(Network network) {}
 
       @Override
       void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
           WifiInfo wifiInfo = (WifiInfo) networkCapabilities.getTransportInfo();
       }
       // etc.
  };
  connectivityManager.requestNetwork(request, networkCallback); // For request
  connectivityManager.registerNetworkCallback(request, networkCallback); // For listen
https://developer.android.com/reference/kotlin/android/net/wifi/WifiManager#getConnectionInfo()

关于android - 'connectionInfo : WifiInfo! 的 getter' 已被弃用。在 Java (Api 31) 中已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68512057/

相关文章:

java - 考虑到不添加周末,如何将营业时间添加到日期? - java

java - 安卓文件扫描

android - 新 Intent 加载错误的 xml 文件

android - numLevels Wifimanager.calculateSignalLevel 方法的可能输入值是什么?

Android 12 - Material You 图标

java - 使用Json访问特定属性

android - 如何获取请求者 - android 中配置的 WiFi 网络的 BSSID?

android - wifi peer-2-peer(wifi direct)组自动认证

android - Xamarin.Android 没有 'android:exported' 属性设置错误

拒绝时授予 Android 12 BLUETOOTH_CONNECT 权限