我想创建一个自动连接到Open Networks的应用程序(所以没有密码)。我知道您可以使用wifi.startScan()
和wifi.getScanResults
进行扫描。但是如何保存所有这些网络名称?
所以我可以通过以下方式与他们联系:
String networkSSID = "test";
String networkPass = "pass";
WifiConfiguration conf = new WifiConfiguration();
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
对不起,我真的很吵。
答案 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);
}
}
}