Android连接到WiFi而无需人工干预

Fel*_*han 7 android hci wifi

我想知道是否有一些可用于将Android设备连接到WiFi网络的代码片段.网络应该是开放的或WEP/WPA加密的,并且对该设备可见.通常,我们使用GUI界面输入WiFi密码并点击连接按钮.我想将密码存储在一个地方,并使用密码无缝连接到网络,无需人工干预.那可能吗?非常感谢.

Fel*_*han 14

多谢你们.在您的帮助下,我现在能够毫不费力地连接到WPA/PSK加密网络.这是我的代码片段:

        WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        // setup a wifi configuration
        WifiConfiguration wc = new WifiConfiguration();
        wc.SSID = "\"YOUR_SSID\"";
        wc.preSharedKey = "\"YOUR_PASSWORD\"";
        wc.status = WifiConfiguration.Status.ENABLED;
        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
        wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
        wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
        wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
        // connect to and enable the connection
        int netId = wifiManager.addNetwork(wc);
        wifiManager.enableNetwork(netId, true);
        wifiManager.setWifiEnabled(true);
Run Code Online (Sandbox Code Playgroud)

技巧是:

  • SSID字符串应该用",用\表示"
  • addNetwork()方法默认情况下禁用添加的网络,因此您应该使用enableNetwork()方法启用它.


Nic*_*las 2

WifiManager - 您是否尝试过查看此处。addNetwork ()方法看起来可以做你想做的事情。您所要做的就是将信息放入WifiConfiguration类中,然后添加网络,然后启用该连接。文档就在那里。