2013-09-22 49 views
1

我正在一个Android项目,我试图检查如果一个Android设备连接到Wifi,但是,我的功能总是返回false,即使我的设备已成功连接到Wifi。检查WiFi是否连接返回假即使它连接

在构造函数中我通过调用方法的上下文中的类,并且在构造函数中创建的ConnnectivityManager

下面的实例是构造

public NetworkManagement(Context context) 
{ 
    this.context = context; 
    connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
} 

下面是我的功能我遇到了问题

public boolean isConnectedToWifi() 
{ 
    NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    if (networkInfo.isConnected()) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

即使我的设备连接到wifi网络,并且我可以成功连接到int ernet,上面的函数总是会返回false,但我不明白为什么。

感谢您提供的任何帮助。

回答

0
public class NetworkManagement 
{ 
    public Context context; 

    public NetworkManagement(Context context) 
    { 
     this.context = context;  
    } 

    public boolean isConnectedToWifi() 
    { 
     ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
     if (networkInfo.isConnected()) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 

} 

,并呼吁

//tested with context=getApplicationContext(); 
NetworkManagement a = new NetworkManagement(context); 
Boolean z = a.isConnectedToWifi(); 

ž应该回到它正常

编辑:它仍然不能正常工作的话,我把它。如果它仍然不是这将是一个错误在上下文

+0

这几乎是相同的代码,我张贴在我的问题 – Boardy

+0

谢谢,我使用getApplicationContext()方法。如果它有任何区别,则应用程序上下文将从服务中检索并传递到同步适配器,然后该同步适配器将用于同步适配器的performSync方法 – Boardy