首页 > 解决方案 > 无法在 Android 12 中使用 onCapabilitiesChanged 获取 WIFI SSID

问题描述

描述

我无法使用Android-12onCapabilitiesChanged中的类中的 WIFI SSID。ConnectivityManager.NetworkCallback在 Android-12 中,不推荐使用 getConnectionInfo。因此,正如 android 文档所建议的那样,我正在尝试WifiInfo使用onCapabilitiesChanged.

像这样,

@Override
public void onCapabilitiesChanged(@NonNull Network network, @NonNull NetworkCapabilities networkCapabilities) {
        super.onCapabilitiesChanged(network, networkCapabilities);
        WifiInfo wifiInfo = (WifiInfo) networkCapabilities.getTransportInfo();
    }

但是,当我打印WifiInfo对象时。它将打印SSID: <unknown ssid>getHiddenSSID返回 true。

意外的行为是,

Android-12 设备与一个 WIFI 连接(例如 ABC)

注意:提供位置权限。

标签: androidwifiandroid-wifissidandroid-12

解决方案


花了几天时间,终于找到了为什么我没有进入 SSID 的原因onCapabilitiesChanged

我们需要在创建对象时传入FLAG_INCLUDE_LOCATION_INFO构造ConnectivityManager.NetworkCallback函数。

在默认构造函数中,位置敏感信息是隐藏的,因为我们无法获取 SSID onCapabilitiesChanged。一旦我们NetworkCallback使用标志创建对象,我们将获得 SSID。

关联


推荐阅读