我有一个问题。我正在忙于开发的应用程序现在出现了一个奇怪的问题。我使用下面的库:WiseFly,它是一个简单的wifi管理器包装器
我的应用程序管理WiFi网络。它将添加到保存的网络,并根据用户与我的应用程序的交互连接到它。它在所有版本的android上都能完美工作,除了我的Pixel上的Android Oreo。
它在包装器内部的以下行超时:
getWifiManager().disconnect();
getWifiManager().enableNetwork(wifiConfiguration.networkId, true);
getWifiManager().reconnect();最后一行是问题所在。如果我进入android的网络设置,我会看到保存的网络,但也不会从android内部连接。有什么办法可以解决这个问题吗?
这是用于添加网络的代码:
/**
* To generate a configuration for a WPA2 network
*
* @param ssid The ssid for the WPA2 network's configuration
* @param password The password for the WPA2 network's configuration
*
* @return WifiConfiguration - The WPA2 network configuration
*/
public WifiConfiguration generateWPA2NetworkConfiguration(String ssid, String password) {
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = mSSIDUtil.convertSSIDForConfig(ssid);
wifiConfiguration.preSharedKey = "\"" + password + "\"";
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wifiConfiguration.status = WifiConfiguration.Status.ENABLED;
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
return wifiConfiguration;
}任何帮助都将不胜感激。
谢谢
发布于 2018-04-12 04:34:48
尝尝这个
// Allow a previously configured network to be associated with.
getWifiManager().enableNetwork(wifiConfiguration.networkId, true);
// Reconnect to the currently active access point, if we are currently disconnected.
getWifiManager().reconnect();
// wait until reconnect process is completed
Thread.sleep(3000);https://stackoverflow.com/questions/47530720
复制相似问题