首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WifiManager.getConfiguredNetworks始终返回空列表

WifiManager.getConfiguredNetworks始终返回空列表
EN

Stack Overflow用户
提问于 2014-03-23 22:44:20
回答 3查看 5.6K关注 0票数 2

我正在尝试连接一个开放的wifi网络。当我打开我的应用程序时,它应该打开wifi并连接到如下定义的网络。问题是WifiManager.getConfiguredNetworks总是给我返回一个空列表。我也尝试过使用锁,但没有成功。

代码语言:javascript
复制
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";
conf.status = WifiConfiguration.Status.ENABLED;        
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.priority = Integer.MAX_VALUE;

WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true);   
wifiManager.addNetwork(conf);


List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
if(list.isEmpty()) 
{
    Log.e("Connection Setup","Empty list returned");
}

for( WifiConfiguration i : list ) {
    if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
    Log.e("Connection Setup",i.SSID+" connrction attempted");
    wifiManager.disconnect();
    wifiManager.enableNetwork(i.networkId, true);
    wifiManager.reconnect();               
    break;
 }           
}

我已经尝试了更多的东西--如果我让这个线程休眠10秒左右--一切正常--但是有没有更好的替代方案呢?

EN

回答 3

Stack Overflow用户

发布于 2015-11-06 16:50:12

您不能继续

代码语言:javascript
复制
CMD wifiManager.getConfiguredNetworks()

直到WiFi的状态为完全启用。启用WiFi需要一些时间。所以你需要延迟一段时间。

票数 1
EN

Stack Overflow用户

发布于 2015-01-16 13:47:32

尝试在您的代码中注释这些行。你看到结果集中有什么变化吗?

代码语言:javascript
复制
wifiManager.setWifiEnabled(true);   
wifiManager.addNetwork(conf);

您可能想检查wifiManager.addNetwork(conf);的返回值,它是否返回-1。

对于我来说,这几行只返回31个对象。不知道why..still在找它。

代码语言:javascript
复制
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> arraylist = wifiManager.getConfiguredNetworks();
Log.wtf("WifiPreference","No of Networks"+arraylist.size());
票数 0
EN

Stack Overflow用户

发布于 2015-03-31 22:30:12

我也不幸地遇到了这个问题。

在搜索了一段时间后,我认为这是一个bug。

这是getConfiguredNetworks的android实现。

代码语言:javascript
复制
public List<WifiConfiguration> getConfiguredNetworks() {
    try {
        return mService.getConfiguredNetworks();
    } catch (RemoteException e) {
        return null;
    }
}

可以清楚地看到,如果在运行时发生RemoteException,函数将返回null。到目前为止,我也对此感到苦恼,无法获得一些点来解决这个问题。

欲了解更多信息,请访问:https://code.google.com/p/android/issues/detail?id=19078

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22592353

复制
相关文章

相似问题

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