Android 已连接到其他 wifi,但连接到 wifi 热点速度较慢

Android connect to wifi hotspot slowly with already connecting to other wifi

我一直在研究 wifi 连接。我可以使用一个 Android 设备打开 wifi 热点,另一个 Android 设备连接到它。

但是这里有个问题。我发现 wifi 状态将断开连接并重新连接到它已经记住的 wifi,最后一次(我想当它发现热点已准备就绪时)再次断开连接并重新连接到我的 wifi 热点。这个过程大概用了20~30秒。

这是我的代码:

  private void connectToWiFiHotSpot() {
    WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
    mWifiConfig = new WifiConfiguration();
    mWifiConfig.SSID = "\"test5678\"";
    mWifiConfig.preSharedKey = "\"12345678\"";
    mWifiConfig.priority = 100000;
    int res = wifiManager.addNetwork(mWifiConfig);
    Log.d("WifiPreference", "add Network returned " + res);
    wifiManager.disconnect();
    boolean isEnable = wifiManager.enableNetwork(res, true);
    Log.d("WifiPreference", "enable Network returned " + isEnable);
    wifiManager.reconnect();
}

我的问题是有什么方法可以让我的设备直接连接到我的热点,而无需连接到它记住的内容。加速并提高性能。

我已经尝试设置高优先级并删除其他记住 wifi 配置不是我想要的。

如有任何帮助,我将不胜感激。

好的,我找到了解决办法。

在我们添加指定的 wifi 配置之前禁用所有其他已配置的网络。

  WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
  //disable others
  for (WifiConfiguration wifiConfiguration: wifiManager.getConfiguredNetworks()) {
        wifiManager.disableNetwork(wifiConfiguration.networkId);
  }

  mWifiConfig = new WifiConfiguration();
  mWifiConfig.SSID = "\"test5678\"";
  mWifiConfig.preSharedKey = "\"12345678\"";
  mWifiConfig.priority = 100000;
  int res = wifiManager.addNetwork(mWifiConfig);
  Log.d("WifiPreference", "add Network returned " + res);
  wifiManager.disconnect();
  boolean isEnable = wifiManager.enableNetwork(res, true);
  Log.d("WifiPreference", "enable Network returned " + isEnable);
  wifiManager.reconnect();

它将直接连接到您指定的 wifi,而不是连接到它首先记住的其他 wifi。

最后,在您断开与该 wifi 的连接后。不要忘记启用其他wifi。

它将连接到它已连接的 wifi。

   for (WifiConfiguration config: wifiManager.getConfiguredNetworks()) {
        wifiManager.enableNetwork(config.networkId, true);

    }