android - 我可以设置WiFi的ssid吗?

标签 android

我可以使用下面的代码获取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 安全设置。

引用: Another similar question link

关于android - 我可以设置WiFi的ssid吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51006433/

相关文章:

java - 使用ARCORE将图像放在墙上

java - 如何从sqlite中的列中选择特定值

Android 与 genymotion

android - 数据库在我的应用程序下载后似乎消失了。想法?

android - Android API 19 上的 AlertDialog 样式不正确

java - 一段时间后关闭异步任务

java - Recyclerview 从 Picasso 加载缓存的图像非常缓慢

java - 使用 ant 引用 jar(不是/libs)的外部文件夹

android - fragment 中的 Gridview

AndroidManifest 限制