- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 Android 应用程序,它允许您连接到具有特定 BSSID 的 WiFi。我已经实现了扫描所有 wifi 并根据 WiFi 网络安全类型进行 WiFi 配置的部分。我还使用特定的 BSSID 实现了与 WiFi 网络的连接。
但我有一个问题:与特定 BSSID 的连接适用于安全网络,但不适用于开放网络,我不知道为什么。事实上,这种与具有特定 BSSID 的开放网络的连接适用于 Samsung Galaxy S4 或更新版本,但不适用于 Galaxy S2 和 S3 ......这真的很奇怪。在 S2 和 S3 上,连接期间不考虑 BSSID。
这是我用来为开放网络创建配置并尝试使用特定 BSSID 连接的示例代码:
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + wifiItem.getSSID() + "\"";
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
WifiManager wifiManager = (WifiManager) parentActivity.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
conf.BSSID = wifiItem.getBSSID();
wifiManager.updateNetwork(conf);
wifiManager.saveConfiguration();
for (WifiConfiguration wifiConfiguration : wifiManager.getConfiguredNetworks()) {
if (wifiConfiguration.SSID.equals("\"" + wifiItem.getSSID() + "\"")) {
wifiManager.disconnect();
wifiConfiguration.BSSID = wifiItem.getBSSID();
wifiManager.updateNetwork(wifiConfiguration);
wifiManager.enableNetwork(wifiConfiguration.networkId, true);
wifiManager.reconnect();
}
如果有人能帮助我,那就太棒了。我花了很多时间在上面,真的不明白这个问题。
最佳答案
您可以尝试查看这段代码,这是我们用来连接网络的代码:
private void connectToNetwork(String password, ScanResult result, String capabilities) {
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"" + result.SSID + "\"";
wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.ENABLED;
if (capabilities.contains("WPA2")) {
wc.preSharedKey = "\"" + password + "\"";
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
}
if (capabilities.contains("WPA")) {
wc.preSharedKey = "\"" + password + "\"";
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
}
if (capabilities.contains("WEP")) {
wc.wepKeys[0] = password;
wc.wepTxKeyIndex = 0;
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
}
if (capabilities.contains("TKIP")) {
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
}
if (capabilities.contains("CCMP")) {
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.PairwiseCipher.CCMP);
}
if (!hasWifiSecurity(capabilities)) {
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.NONE);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
}
// wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
// // wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
// wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
int res = wifi.addNetwork(wc);
Log.d("WifiPreference", "add Network returned " + res);
boolean b = wifi.enableNetwork(res, true);
Log.d("WifiPreference", "enableNetwork returned " + b);
Log.d("", "Reassociate: " + wifi.reassociate());
Log.d("", "ReConnect: " + wifi.reconnect());
wifi.saveConfiguration();
WifiInfo connection = wifi.getConnectionInfo();
if (connection != null) {
if (connection.getSupplicantState().equals(SupplicantState.INACTIVE)) {
wifi.removeNetwork(res);
wifi.saveConfiguration();
scanForWiFiNetworks();
wifi.enableNetwork(wifi.getConnectionInfo().getNetworkId(), true);
}
}
// scanForWiFiNetworks();
// if (password.equalsIgnoreCase("")) {
// setScanningEnabled(true);
// }
// Toast.makeText(con, "Connecting to network: " + connectionInfo, Toast.LENGTH_SHORT).show(getMessageComments(dialog.getTextID()));
}
关于android - 如何使用特定的 bssid android 连接到 wifi?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32120710/
如何在不连接路由器的情况下获取路由器的 BSSID 以区分重复的 SSID? 路由器是否广播 BSSID? 最佳答案 应用命令 netsh wlan show all Windows 中的 将显示所有
我想知道如何使用wireshark捕获特定无线网络的数据包。 我已经能够在监控模式下捕获不同网络的所有数据包,但对于特定分析,我需要在捕获过程中丢弃与我的网络无关的所有数据包。 我知道存在显示过滤器可
我运行以下命令来检索 BSSID 列表: netsh wlan show networks mode=Bssid | findstr "SSID" 我得到了这个: SSID 1 : John
我使用了下面的代码,但它运行良好,但几个月后我得到的结果是 any 而不是 BSSID 值。这是我的代码。请指导我任何其他替代方式。 @SuppressLint("LongLogTag") publ
大家好,我需要在装有 iOS 12 和 SWIFT 的 iPhone 上获取 wifi 网络的 BSSID。我测试了这样的东西 func getWiFiSsid() -> String? { if l
如何从 Android/iOS 应用程序检索附近 WiFi 网络(不是本地设备)的 BSSID/mac 地址和强度?此应用程序是使用 Titanium 构建的。 Titanium.Platform 为
当我为 android 设备配置并充当热点(wifi 接入点)时,我如何获取当前 Activity 热点的其他设备看到的当前(可能为热点的每次激活生成和唯一)BSSID。不是 SSID,而是 BSSI
是否可以检测同一网络中具有相同 SSID 的 BSSID 变化?因此,当您的手机切换到另一个接入点时,它会触发一个广播接收器。 最佳答案 是的,这是可能的。 创建一个 BroadcastReceive
这个问题在这里已经有了答案: WiFiManager - stumbler (1 个回答) 关闭 7 年前。 我的 iPhone 通过 WiFi 连接到接入点。现在有人知道我如何使用 Objecti
我不明白 MAC 地址和 BSSID 的区别。 我知道 MAC 是本地网络的标识符,但是当我在 wiki 上搜索 BSSID 时,我得到了这个: In an infrastructure BSS, t
我正在创建一个 Android 应用程序,它允许您连接到具有特定 BSSID 的 WiFi。我已经实现了扫描所有 wifi 并根据 WiFi 网络安全类型进行 WiFi 配置的部分。我还使用特定的 B
攻击开始时在终端中写入此命令,但当我在脚本中写入相同的命令时,就会出错。 无效的 BSSID(AP MAC 地址)。 “aireplay-ng --help”寻求帮助。 def deauth(mac
当我使用 getConfiguredNetworks() 获取 BSSID 值时,它没有给我任何信息。我得到了除 BSSID 之外的所有其他值。谁能告诉我为什么会这样?是的,我收到的网络有各自的 BS
我需要获取我的iphone 应用程序的wifi 的bssid 以确定它是否已连接。我该怎么做? 需要一些关于如何操作的指导。 最佳答案 下面的答案是从这个 answer 复制的。 在 iOS 4.1+
如何使用 C# 获取我的系统连接到的无线接入点的 BSSID/MAC(媒体访问控制)地址? 请注意,我对 WAP 的 BSSID 很感兴趣。这与 WAP 网络部分的 MAC 地址不同。 最佳答案 以下
如何在 Android 和 iOS 手机上的 Unity 游戏应用程序中获取 BSSID(我正在连接的 wifi 路由器的 MAC 地址,而不是我的设备 MAC 地址)? 我试过这些方法,但都没有用。
我得到了这段代码,我想扫描网络,然后将其全部写入 ListView 。但问题是 ssid 和 bssid 不显示。显示其他所有内容,但不显示 ssid。 还有什么是每秒更新 ListView 以便您可
假设有人在咖啡店里无线连接到互联网,并向 johnsveryownserver.com 发送 HTTP 请求。服务器端,有什么方法可以确定它们所连接的无线接入点的 MAC 地址吗? (请注意,我对他们
我目前正在使用 kali Linux 2.0 开发 bash 脚本项目。我的脚本基本上扫描网络,当它找到一个网络时,它应该以某种方式将其 ESSID、BSSID 和 channel 存储在一起。然后它
使用 Getting essid via ioctl in ruby作为模板,我想获取 BSSID 而不是 ESSID。但是,不是 C 开发人员,有一些事情我不明白。 到目前为止,我所拥有的不有效:(
我是一名优秀的程序员,十分优秀!