Android WifiConfiguration 顯示 -1 表示 ID.如何修复它以识别SSID


String networkSSID = "networkName";
String networkPassword = "networkPassword";
WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (!wm.isWifiEnabled()) {
    if (wm.getWifiState() != WifiManager.WIFI_STATE_ENABLING) {
        wm.setWifiEnabled(true);
    }
}
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.allowedAuthAlgorithms.clear();
wifiConfig.allowedGroupCiphers.clear();
wifiConfig.allowedKeyManagement.clear();
wifiConfig.allowedPairwiseCiphers.clear();
wifiConfig.allowedProtocols.clear();
wifiConfig.SSID = """ + networkSSID + """;
wifiConfig.priority = 40;
wifiConfig.hiddenSSID = true;
wifiConfig.status = WifiConfiguration.Status.ENABLED;
wifiConfig.wepKeys[0] = """ + networkPassword + """;
wifiConfig.wepTxKeyIndex = 0;
wifiConfig.preSharedKey = """ + networkPassword + """;
wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
int netId = wm.addNetwork(wifiConfig);
wm.disconnect();
wm.enableNetwork(netId, false);
wm.reconnect();

这是我编写的代码,用于使用 SSID 和密码连接到无线 WEP,但是当我调试代码时,它显示 WifiConfiguration 的 ID 为 -1。它导致 netID 的值为 -1,并且没有连接到无线。请帮忙!谢谢。

我很确定配置不正确,或者只是尝试设置BSSID

wc.BSSID = yourBSSID;

因为你有一个隐藏的网络。您可以从 SSID 没有值的网络扫描中获取它。

最新更新