WifiManager getConnectionInfo() 在 Android API 级别 31 中已弃用

发布于 2025-01-10 23:59:10 字数 492 浏览 0 评论 0原文

我们使用 Wifimanger getConnectionInfo() 方法来获取连接的 wifi 的 SSID 和 BBSID。 但从 Andorid API level 31 开始,Android 已弃用 getConnectionInfo() 方法。

他们提供的使用 getTransportInfo() 的解决方案需要最低 Android 级别 29,鉴于我们 20% 的用户仍然使用低于 29 的 Android API 级别,因此我们无法定位该级别

。有人可以帮助使用替代方法来连接 wifi。

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

We uses Wifimanger getConnectionInfo() method to get SSID and BBSID of connected wifi.
But starting with Andorid API level 31 , Android has deprecated the getConnectionInfo() method.

The solution that they have provided to use getTransportInfo() required minimum Android level 29 which we cannot target , given our 20 percent user still on Android API level below 29.

Can someone help with the alternative method to get connected wifi.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

錯遇了你 2025-01-17 23:59:10

您可以使用 NetworkCallback() 来代替。
您需要将 FLAG_INCLUDE_LOCATION_INFO 传递给 NetworkCallback(),否则您只会得到“未知 SSID”。

此外,您还需要 ACCESS_NETWORK_STATEACCESS_FINE_LOCATION 权限才能使其正常工作。

val request = NetworkRequest.Builder()
    .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
    .build()
val networkCallback = object : ConnectivityManager.NetworkCallback(
    FLAG_INCLUDE_LOCATION_INFO) {
    override fun onCapabilitiesChanged(
        network: Network,
        networkCapabilities: NetworkCapabilities
    ) {
        super.onCapabilitiesChanged(network, networkCapabilities)
        val wifiInfo = networkCapabilities.transportInfo as WifiInfo
        val ssid = wifiInfo.ssid
    }
}
connManager.registerNetworkCallback(request, networkCallback)

请参阅此处

You can use NetworkCallback() instead.
You need to pass FLAG_INCLUDE_LOCATION_INFO to NetworkCallback(), otherwise you will get "unknown SSID" only.

Also, you need the ACCESS_NETWORK_STATE and ACCESS_FINE_LOCATION permissions to make it work.

val request = NetworkRequest.Builder()
    .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
    .build()
val networkCallback = object : ConnectivityManager.NetworkCallback(
    FLAG_INCLUDE_LOCATION_INFO) {
    override fun onCapabilitiesChanged(
        network: Network,
        networkCapabilities: NetworkCapabilities
    ) {
        super.onCapabilitiesChanged(network, networkCapabilities)
        val wifiInfo = networkCapabilities.transportInfo as WifiInfo
        val ssid = wifiInfo.ssid
    }
}
connManager.registerNetworkCallback(request, networkCallback)

Refer to here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文