首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以设置WiFi的ssid吗?

我可以设置WiFi的ssid吗?
EN

Stack Overflow用户
提问于 2018-06-24 02:12:45
回答 1查看 305关注 0票数 1

我可以用下面的代码来得到WiFi的名字,我希望通过编程选择Wifi,我该怎么办?

看来wifiInfo.ssid是val,不能分配它!

我将所需的权限设置为

代码语言:javascript
复制
<!-- in AndroidManifest.xml -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

然后在代码中

代码语言:javascript
复制
<!-- 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

BTW,

我读过How do I connect to a specific Wi-Fi network in Android programmatically?的文章

当我再次连接WIFI时,似乎需要在上面的代码中提供密码。

在我看来,如果我成功地连接到wifi,密码将被保存到配置中,我希望我不必在代码中提供密码,如果我想再次连接WiFi,我该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-24 05:14:20

您需要创建这样的Wifi配置。

代码语言:javascript
复制
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安全设置。

参考资料:Another similar question link

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51006433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档