'connectionInfo 的吸气剂:WifiInfo!' 已弃用。在 Java 中已弃用 (Api 31)

Ren*_*ele 10 android wifimanager android-12 android-api-31

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

'connectionInfo 的吸气剂:WifiInfo!' 已弃用。在 Java 中已弃用

我该如何在 Android 12 中做到这一点?(只想获取RSSI)

小智 8

从 Build.VERSION_CODES#S 开始,WifiInfo 检索已移至 ConnectivityManager API 表面。WifiInfo 附加在 NetworkCapativity#getTransportInfo() 中,可通过 NetworkCallback#onCapabilitiesChanged(Network, NetworkCapativity) 中的回调或 ConnectivityManager#getNetworkCapability(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
Run Code Online (Sandbox Code Playgroud)

https://developer.android.com/reference/kotlin/android/net/wifi/WifiManager#getConnectionInfo()