如何解决Android无需人工干预即可连接到WiFi
| 我想知道是否有一些代码片段可用于将Android设备连接到WiFi网络。该网络应该是开放的,或者是WEP / WPA加密的,并且对该设备可见。通常,我们使用GUI界面输入WiFi密码,然后点击连接按钮。我想将密码存储在一个地方,并使用密码无缝地连接到网络,而无需人工干预。那可能吗?非常感谢。解决方法
谢谢你们。在您的帮助下,我现在可以轻松连接到WPA / PSK加密网络。这是我的代码段:
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
// setup a wifi configuration
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = \"\\\"YOUR_SSID\\\"\";
wc.preSharedKey = \"\\\"YOUR_PASSWORD\\\"\";
wc.status = WifiConfiguration.Status.ENABLED;
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
// connect to and enable the connection
int netId = wifiManager.addNetwork(wc);
wifiManager.enableNetwork(netId,true);
wifiManager.setWifiEnabled(true);
技巧是:
SSID字符串应用\“括起来,用\\\”表示
addNetwork()方法默认情况下禁用添加的网络,因此您应该使用enableNetwork()方法启用它。
,为了使OP示例代码正常工作,我不得不再添加一行:
wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
没有那条线,它将无法连接到网络。接受并添加了配置,但未进行任何连接尝试。我实际上在logcat窗口中收到以下消息:
Event [WPA: Failed to select WPA/RSN] android
这将我带到了最终解决方案,弄清楚了为什么它对我不起作用。
,WifiManager-您是否尝试过看这里。 addNetwork()方法看起来像它可以完成您想要的事情。您所要做的就是将信息放入WifiConfiguration类中,然后添加网络,然后启用该连接。文档就在那里。
,查看\“ WifiManager \”的文档
可用于启用wifi:
WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);
它可以用来做很多其他事情。
编辑:当监视和更改wifi状态时,不要忘记更新您的权限,例如:
<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />
<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\" />
等等...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。