Android无需人工交互即可连接WiFi

标签 android wifi hci

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

最佳答案

谢谢大家。在您的帮助下,我现在可以轻松连接到 WPA/PSK 加密网络。这是我的代码 fragment :

        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);

技巧是:

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

关于Android无需人工交互即可连接WiFi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6141185/

相关文章:

android - 重新映射传感器坐标

Android:从 broadcastReceiver 更新 listView 中的进度条

swift - 检测用户是否打开或关闭 Wifi 或蓝牙

java - Java虚拟助手的查询分类?

android - 此 iOS UI 元素及其 Android 替代元素的名称?

c# - 如何将 WEP key 转换为 ASCII 密码?

linux - 找不到 hcidump 二进制文件

python - 有关 HCI 滤波器 socket 选项的详细信息?

linux - 使用 hcidump 获取 RSSI

java - Android "gps requires ACCESS_FINE_LOCATION"错误,即使我的 list 文件包含此