gpt4 book ai didi

android - 无法从扫描结果连接 SSID - Android

转载 作者:行者123 更新时间:2023-11-29 21:11:34 25 4
gpt4 key购买 nike

我已经使用 WifiManager 扫描可用的 wifi,

mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
mainWifi.startScan();

我可以获得网络列表。

但是当我尝试连接到 Speecific wifi SSID String hotspot="some_wifi_name"; 在这种情况下,它将热点添加到 WifiConfig 但之后它在连接时进入无限循环并再次扫描结果,循环继续。

以下是Broadcast Receiver我用来连接我的SSID,

class WifiReceiver extends BroadcastReceiver {

ArrayList<String> connections = new ArrayList<String>();
WifiConfiguration conf;

public void onReceive(Context c, Intent intent) {

WifiManager wifiManager = (WifiManager) c
.getSystemService(Context.WIFI_SERVICE);

List<ScanResult> wifiList;
wifiList = mainWifi.getScanResults();
for (int i = 0; i < wifiList.size(); i++) {

String ssid = wifiList.get(i).SSID;
int rssi = wifiList.get(i).level;
Log.d("SSID: ", "" + wifiList.get(i).SSID.toString()
+ " signal: " + rssi);

if (ssid != null && ssid.equals(hotspot)) {
Log.d("SSID Hotspot: ",
"" + wifiList.get(i).SSID.toString());
conf = new WifiConfiguration();
conf.SSID = "\"" + hotspot + "\"";
conf.allowedKeyManagement
.set(WifiConfiguration.KeyMgmt.NONE);
wifiManager.addNetwork(conf);
}
}

List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();

loops:
for (WifiConfiguration j : list) {


if (j.SSID != null && j.SSID.equals("\"" + hotspot + "\"")) {
Log.d("Config", "" + j.SSID);
wifiManager.disconnect();
wifiManager.enableNetwork(j.networkId, true);

wifiManager.reconnect();

}
}
}
}

为什么在获取到想要的SSID后再次扫描wifi并进入无限循环,错误的地方在哪里。

最佳答案

这段代码应该让你连接到一个具体的 SSID:

public void connectToWifi(String ssid) {

WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + ssid + "\""; // Please note the quotes.
// String should contain
// ssid in quotes

conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

wifiMgr.addNetwork(conf);
Log.d(TAG, ssid+" added");

List<WifiConfiguration> list = wifiMgr.getConfiguredNetworks();
for (WifiConfiguration i : list) {
if (i.SSID != null && i.SSID.equals("\"" + ssid + "\"")) {
wifiMgr.disconnect();
wifiMgr.enableNetwork(i.networkId, true);
wifiMgr.reconnect();
Log.d(PluginConstants.LOG_TAG, "conneting to: ssid");
break;
}
}
}

关于android - 无法从扫描结果连接 SSID - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com