'getter for connectionInfo: WifiInfo!' 已经被废弃。在Java (Api 31)中已经被弃用。

10

当我想通过WifiManager.connectionInfo获取当前wifi连接的信息时,我得到了以下提示:

'getter for connectionInfo: WifiInfo!'已被弃用。Java中已弃用。

在Android 12中,我应该如何获取它?(我只想获取rssi)

1个回答

8
从 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()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接