在当系统未连接上wifi的时候,直接不显示wifi列表 ,这个判断导致?
wifiactivty.java的处理会在当系统未连接上wifi的时候,直接不显示wifi列表 ,这个判断导致?
这个问题主要出现在 updateWifiList 方法中,因为它在更新 Wi-Fi 列表时添加了一个条件判断:
在 updateWifiList 方法中,代码通过 NetworkUtils.isWifiConnected() 判断当前是否连接到 Wi-Fi。如果未连接到 Wi-Fi(即 NetworkUtils.isWifiConnected() 返回 false),则会执行以下逻辑:
- 清空 wifiList(wifiList.clear())。
- 调用 wifiAdapter.notifyDataSetChanged() 更新 UI,导致列表显示为空。
这种逻辑导致在未连接 Wi-Fi 的情况下,Wi-Fi 列表不会显示任何扫描到的 Wi-Fi 网络。这是一个缺陷,因为即使设备未连接到 Wi-Fi,用户也应该能够看到可用的 Wi-Fi 网络列表,以便选择并尝试连接。
private void updateWifiList() {// 移除 NetworkUtils.isWifiConnected() 判断,直接处理 wifiListif (wifiList == null || wifiList.isEmpty()) {if (BuildConfig.DEBUG) {Log.d(TAG, "Wi-Fi list is empty");}Toast.makeText(this, getString(R.string.no_wifi_found), Toast.LENGTH_SHORT).show();} else {for (ScanResult result : wifiList) {// 可选:保留调试用途的日志// if (BuildConfig.DEBUG) Log.d(TAG, "Wi-Fi SSID: " + result.SSID);}sortWifiList();}if (wifiAdapter != null) {wifiAdapter.notifyDataSetChanged();}if (wifiListView != null) {wifiListView.invalidateViews();if (!TextUtils.isEmpty(connectedSsid)) {wifiListView.smoothScrollToPosition(0);}if (BuildConfig.DEBUG) {Log.d(TAG, "Updated wifi list and notified adapter");}}}