9

When I want to get info about current wifi connection via WifiManager.connectionInfo I get this:

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

How can I do it in Android 12? (only want to get rssi)

Renattele Renattele
  • 1,626
  • 2
  • 15
  • 32

1 Answers1

7

Starting with Build.VERSION_CODES#S, WifiInfo retrieval is moved to ConnectivityManager API surface. WifiInfo is attached in NetworkCapabilities#getTransportInfo() which is available via callback in NetworkCallback#onCapabilitiesChanged(Network, NetworkCapabilities) or on-demand from 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()

Vacxe
  • 91
  • 5