确认Wi-Fi是否开启并处于可用状态。
检查权限: 在Android 11 中,获取 Wi-Fi 列表需要 ACCESS_FINE_LOCATION 权限。要在AndroidManifest.xml中添加以下权限:
如果您的应用程序需要在后台扫描 Wi-Fi 网络,请添加以下权限:
确认您的应用程序支持 Android 11 。如果您的应用程序还未迁移到 Android 11,请按照官方文档的说明进行操作。
使用以下代码示例检查连接状态和获取列表:
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
boolean wifiConnected = networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);
if (wifiConnected) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List
}
注意:在Android 11中,getScanResults()方法返回一个空列表,如果您没有获得 ACCESS_FINE_LOCATION 权限。
参考:https://developer.android.com/training/connect-devices-wirelessly/wifi-scanner#java