【发布时间】:2021-03-18 15:51:13
【问题描述】:
我在 Android 11 中测试了这段代码
val networkRequest = NetworkRequest.Builder().apply {
addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
}.build()
connectivityManager.registerNetworkCallback(networkRequest, object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
super.onAvailable(network)
val wifiName = getCurrentlyConnectedName() ?: return
val wifiMac = getCurrentlyConnectedMac() ?: return
Timber.d("WifiStateManager onAvailable() called with: network = [$wifiName]")
}
override fun onLost(network: Network) {
super.onLost(network)
Timber.d("WifiStateManager onLost() called with: network = [$network]")
}
})
并注意到一个奇怪的行为。当应用程序在后台时,wifi ssid 始终为<unknown>(请注意,位置权限被授予 100%)。当应用程序在前台时,一切正常,我得到正确的wifi ssid。
为什么会这样?即使应用在 Android 11 的后台,如何获取 wifi SSID?
【问题讨论】:
-
我也有同样的问题,没有答案?
标签: android android-wifi