相关疑难解决方法(0)

如何以编程方式连接Android中的特定Wi-Fi网络?

我想设计一个应用程序,显示可用的Wi-Fi网络列表,并连接到用户选择的任何网络.

我已经实现了显示扫描结果的部分.现在,我想从扫描结果列表连接到用户选择的特定网络.

我该怎么做呢?

android wifimanager android-wifi

279
推荐指数
7
解决办法
28万
查看次数

连接到开放WiFi

我使用下面的代码连接到加密网络.但是,如果网络不安全并且我将密钥留空("")则会失败.有谁知道如何解决这个问题?此外,是否可以使用ssid/bssid检测网络是否打开?或者我必须使用过滤器进行扫描?

public void connectToSSID(final String ssid, final String key) {
    Log.i("wifimaster", "connection to "+ssid);

    WifiConfiguration wc = new WifiConfiguration();
    wc.SSID = "\""+ssid+"\""; //IMPORTANT! This should be in Quotes!!  
    wc.priority = 40;
    wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
    wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
    wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
    wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
    wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
    wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
    wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
    wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
    wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
    wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);

    wc.preSharedKey = "\""+key+"\"";
    wc.wepKeys[0] = "\""+key+"\""; //This is the WEP Password
    wc.wepTxKeyIndex = 0;

    wc.preSharedKey = "\""+key+"\"";

    int res = wifiManager.addNetwork(wc);
    Log.d("WifiPreference", "add Network returned " + res );
    boolean es = wifiManager.saveConfiguration();
    Log.d("WifiPreference", "saveConfiguration …
Run Code Online (Sandbox Code Playgroud)

encryption android wifi

14
推荐指数
1
解决办法
9499
查看次数

标签 统计

android ×2

android-wifi ×1

encryption ×1

wifi ×1

wifimanager ×1