Android已连接到其他wifi,慢慢连接到wifi热点

时间:2015-12-03 14:43:12

标签: android 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配置不是我想要的。

任何帮助我将不胜感激。

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案。

在添加指定的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。

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

    }