我用下面的代码,但它运作良好,但一些一个月后我得到的结果作为任何不但得不到BSSID值.这是我的代码.请指导我任何其他替代方式.
@SuppressLint("LongLogTag")
public void loadWifiAvailableList() {
WifiManager wifiMan = (WifiManager) getApplicationContext().getSystemService(
Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiMan.getConnectionInfo();
String macAddr = wifiInfo.getMacAddress();
String bssid = wifiInfo.getBSSID();
//here i am getting the proper bssid
Log.d("bssid from get connection info",bssid);
List<WifiConfiguration> list = wifiMan.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.BSSID!=null)
//here i am getting any from i.BSSID
Log.d("bssid from get configured network",i.BSSID);
}
}
Run Code Online (Sandbox Code Playgroud)
我只是在 android 中尝试了一些用于 wpa2 企业连接的代码,但没有任何连接,我想要一个正确的代码来连接正确的网络。现在我已经使用了这个答案,但我需要一些澄清,因为这个答案是非常旧的。我在这里附上一些有关连接说明的屏幕截图。在这个你可以看到身份和密码
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = "\"" + networkSSID + "\"";
wifiConfiguration.BSSID = Bssid;
wifiConfiguration.hiddenSSID = true;
wifiConfiguration.status = WifiConfiguration.Status.DISABLED;
wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wifiConfiguration.enterpriseConfig.setIdentity(identity);
wifiConfiguration.enterpriseConfig.setPassword(password);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
if (networkPasskey.matches("^[0-9a-fA-F]+$")) {
wifiConfiguration.wepKeys[0] = networkPasskey;
} else {
wifiConfiguration.wepKeys[0] = "\"".concat(networkPasskey).concat("\"");
}
wifiConfiguration.wepTxKeyIndex = 0;
Run Code Online (Sandbox Code Playgroud)
我在wificonfiguration中找到了enterprice功能来设置身份和密码。
wifiConfiguration.enterpriseConfig.setIdentity(identity);
wifiConfiguration.enterpriseConfig.setPassword(password);
Run Code Online (Sandbox Code Playgroud)
但这有什么用呢。当我们有身份和密码时。
if (networkPasskey.matches("^[0-9a-fA-F]+$")) {
wifiConfiguration.wepKeys[0] = networkPasskey;
} else {
wifiConfiguration.wepKeys[0] = "\"".concat(networkPasskey).concat("\"");
}
wifiConfiguration.wepTxKeyIndex = …
Run Code Online (Sandbox Code Playgroud)