在当系统未连接上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() 判断,直接处理 wifiList
        if (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");
            }
        }
    }

你可能感兴趣的:(java)