![]() |
胆小的小蝌蚪 · python:missing 1 ...· 1 年前 · |
![]() |
个性的领带 · 面向 Visual Basic ...· 2 年前 · |
![]() |
发财的饭卡 · 菜单 - WPF .NET ...· 2 年前 · |
我正在尝试通过使用WifiManager配置提供SSID和pass来连接到wifi网络。
基于这个线程解决方案: How do I connect to a specific Wi-Fi network in Android programmatically?
将调用重新连接方法。但没有发生任何事情(未连接)。
Android版本(6.0.1)有什么作用吗?如果是,那么如何在Android6上以编程方式执行网络连接?
发布于 2017-06-12 17:27:49
自从安卓棉花糖以来,你连接WiFi网络的方式发生了一些变化。以下代码将帮助您使用Android6.0或更低版本的you...If ...
public void connectToWifi(){
WifiManager wifiManager = (WifiManager) super.getSystemService(android.content.Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
wc.SSID = "\"NETWORK_NAME\"";
wc.preSharedKey = "\"PASSWORD\"";
wc.status = WifiConfiguration.Status.ENABLED;
wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wifiManager.setWifiEnabled(true);
int netId = wifiManager.addNetwork(wc);
if (netId == -1) {
netId = getExistingNetworkId(wc.SSID);
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
} catch (Exception e) {
e.printStackTrace();
private int getExistingNetworkId(String SSID) {
WifiManager wifiManager = (WifiManager) super.getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> configuredNetworks = wifiManager.getConfiguredNetworks();
if (configuredNetworks != null) {
for (WifiConfiguration existingConfig : configuredNetworks) {
if (existingConfig.SSID.equals(SSID)) {
return existingConfig.networkId;
return -1;
}
并在清单文件中添加权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
发布于 2016-03-07 22:08:24
使用addNetwork添加wifi配置,然后使用enableNetwork连接到它。
WifiConfiguration wificonfiguration = new WifiConfiguration();
StringBuffer stringbuffer = new StringBuffer("\"");
stringbuffer.append((new StringBuilder(String.valueOf(HOTSPOT_NAME))).append("\"").toString());
wificonfiguration.SSID = stringbuffer.toString();
wificonfiguration.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
wificonfiguration.allowedAuthAlgorithms.set(0);
wificonfiguration.status = 2;
wificonfiguration.preSharedKey = "\"" + HOTSPOT_PASSWORD + "\"";
int networkId_ = wifi.addNetwork(wificonfiguration);