我可以用下面的代码来得到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 errorBTW,
我读过How do I connect to a specific Wi-Fi network in Android programmatically?的文章
当我再次连接WIFI时,似乎需要在上面的代码中提供密码。
在我看来,如果我成功地连接到wifi,密码将被保存到配置中,我希望我不必在代码中提供密码,如果我想再次连接WiFi,我该怎么办?
发布于 2018-06-24 05:14:20
您需要创建这样的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安全设置。
https://stackoverflow.com/questions/51006433
复制相似问题