gpt4 book ai didi

java - 如何自动连接指定SSID的WiFi?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:03 25 4
gpt4 key购买 nike

有人可以帮我解决这个问题吗?

这是我的代码,在 mWifi.enableNetwork(netID, true) 处,它无法启用网络,也无法自动连接到指定网络。所以我想知道我在哪里犯了错误?

    public class WifiConnActivity extends Activity {
/** Called when the activity is first created. */
final String tag = "WifiConn:...";
EditText txt;
WifiManager mWifi;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mWifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);

txt = (EditText)findViewById(R.id.editText1);

Button b1 = (Button)findViewById(R.id.B1);
b1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{

if (mWifi.startScan()) //scan now
{
Log.d(tag, "startScan()");

List<ScanResult> sRet = mWifi.getScanResults(); //scan results.

for (int i=0; i<sRet.size(); i++)
{
ScanResult retS = sRet.get(i);
txt.append("resT: " + retS.SSID +" " + retS.BSSID + "\n");
Log.d(tag, "resT: " + retS.SSID +" " + retS.BSSID);

if (retS.SSID.equalsIgnoreCase("TEST"))
{
txt.append("Found: " + retS.SSID +" " + retS.BSSID + "\n");

WifiConfiguration wc = new WifiConfiguration();

wc.SSID = "\""+retS.SSID+"\"";
wc.BSSID = retS.BSSID;
wc.status = WifiConfiguration.Status.ENABLED;
wc.hiddenSSID = true;

int netID = mWifi.addNetwork(wc); // add network
txt.append("addNetwork: "+ Integer.toString(netID) +"\n");

if(mWifi.enableNetwork(netID, true)) // enable network, but cannot work???????????
{
txt.append("enableNetwork: true\n");
}
}
}

}
}

});
}
}

最佳答案

我认为您需要将 WifiConfiguration.KeyMgmt 添加到您的 WifiConfiguration 对象。假设它是一个开放网络:

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

此外,假设扫描结果在您退出对 startScan() 的调用后立即可用时要谨慎。在这种情况下最好的办法是在 WifiManager.SCAN_RESULTS_AVAILABLE_ACTION 上添加一个 BroadcastReceiver并将您从 mWifi.getScanResults() 向前的所有代码添加到其中。一旦获得 enableNetwork() 成功,您将需要添加对 mWifi.reconnect() 的调用。

关于初始化您的 WifiConfiguration wc,如果您能考虑我的帖子,我会很高兴 here .最后,另一个好的答案是 here .

关于java - 如何自动连接指定SSID的WiFi?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834741/

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