首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓8(奥利奥) WifiManager重新连接方法超时

安卓8(奥利奥) WifiManager重新连接方法超时
EN

Stack Overflow用户
提问于 2017-11-28 19:41:51
回答 1查看 747关注 0票数 2

我有一个问题。我正在忙于开发的应用程序现在出现了一个奇怪的问题。我使用下面的库:WiseFly,它是一个简单的wifi管理器包装器

我的应用程序管理WiFi网络。它将添加到保存的网络,并根据用户与我的应用程序的交互连接到它。它在所有版本的android上都能完美工作,除了我的Pixel上的Android Oreo。

它在包装器内部的以下行超时:

代码语言:javascript
复制
getWifiManager().disconnect();
getWifiManager().enableNetwork(wifiConfiguration.networkId, true);
getWifiManager().reconnect();

最后一行是问题所在。如果我进入android的网络设置,我会看到保存的网络,但也不会从android内部连接。有什么办法可以解决这个问题吗?

这是用于添加网络的代码:

代码语言:javascript
复制
/**
     * 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;
    }

任何帮助都将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-04-12 04:34:48

尝尝这个

代码语言:javascript
复制
// 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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47530720

复制
相关文章

相似问题

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