我可以使用下面的代码获取Wifi的名称,我希望通过编程方式选择WiFi,我该怎么做?
wifiInfo.ssid
好像是val,赋值不上去!
我将所需的权限设置为
<!-- in AndroidManifest.xml -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
然后在代码中
<!-- in Activity class -->
var wifiManager = mContext.applicationContext.getSystemService(WIFI_SERVICE) as WifiManager
var wifiInfo = wifiManager.connectionInfo
var name=wifiInfo.ssid
var isEnabled=wifiManager.isWifiEnabled
wifiInfo.ssid="MyNewWifi" //It cause error
顺便说一下,
我已阅读文章 How do I connect to a specific Wi-Fi network in Android programmatically?
在上面的代码中,我重新连接WIFI时好像需要提供密码。
在我看来,如果我成功连接到wifi,密码将保存到配置中,我希望如果我想再次连接wifi,我不需要在我的代码中提供密码,我该怎么办?
最佳答案
您需要像这样创建一个 Wifi 配置。
String networkSSID = "testwifi";
String networkPass = "password";
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";
conf.preSharedKey = "\""+ networkPass +"\"";
WifiManager wifiManager =
(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
此代码应该适用于 WPA 安全设置。
关于android - 我可以设置WiFi的ssid吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51006433/