Android Java:获取开放式WiFi网络

时间:2015-07-12 12:40:31

标签: java android

我想创建一个自动连接到Open Networks的应用程序(所以没有密码)。我知道您可以使用wifi.startScan()wifi.getScanResults进行扫描。但是如何保存所有这些网络名称?

所以我可以通过以下方式与他们联系:

String networkSSID = "test";
String networkPass = "pass";

WifiConfiguration conf = new WifiConfiguration();
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

对不起,我真的很吵。

2 个答案:

答案 0 :(得分:0)

您是说您只想存储SSID和密钥的字符串,以便以后轻松恢复和连接?

最简单的方法是使用SharedPreferences存储任何数据。 这是一个非常容易理解的slidenerd教程。

https://www.youtube.com/watch?v=riyMQiHY3V4

我也是一个菜鸟,所以每当我有问题时,我都会直接前往幻灯片或者在youtube上的newboston,然后在我基本了解之后开始挖掘技术文档。

答案 1 :(得分:0)

过滤掉开放网络。

使用此方法检查网络是否打开

private boolean isProtectedNetwork(String capability){

   return (capability.contains("WPA") || 
           capability.contains("WEP") || 
           capability.contains("WPS")
          );
}

然后遍历所有网络列表并获取所有打开的网络。

private void getAllOpenNetworks(List<ScanResult> allNetworks){

   List<ScanResult>openNetworks  = new ArrayList<ScanResult>();

   for(ScanResult network : allNetworks){

       if(!isProtectedNetwork(network.capabilities)){
           openNetworks.add(network);
       }
   }

}

有用的资源:

您可以在My Github Repository

上找到更多相关的解决方案