'Android API 31, how to get the SSID?
Manifest (permissions declared and granted)
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Main class
class MainActivity {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkInfo = connectivityManager.activeNetwork
val capabilities = connectivityManager.getNetworkCapabilities(networkInfo)
if (capabilities?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) == true) {
val wifiInfo = capabilities.transportInfo as WifiInfo
Log.d("DEBUG", "ssid: ${wifiInfo.ssid}")
}
val wifiManager = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
val connectionInfo = wifiManager.connectionInfo
Log.d("DEBUG", "ssid (deprecated) ${connectionInfo.ssid}")
}
output
ssid: <unknown ssid>
ssid (deprecated): "bingo"
How to retrieve the SSID while targeting the latest API and use the latest, non deprecated functions?
Solution 1:[1]
You need to enable the device's location.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | mariaiffonseca |