2012-06-10 76 views
1

我编写了一个程序来检查网络是否可用。这是我简单的代码:使用NetworkInfo程序时始终报告网络不可用

 public boolean isNetworkAvailable() { 
    Context context = getApplicationContext(); 
     ConnectivityManager connectivity=ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    if (connectivity == null) { 
    boitealerte(this.getString(R.string.alert),"getSystemService rend null"); 
    } else { 
    NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
    if (info != null) { 
    for (int i = 0; i < info.length; i++) { 
     if (info[i].getState() == NetworkInfo.State.CONNECTED) { 
      return true; 
      } 
     } 
    } 
} 
    return false; 
    } 

我在我的Android手机上运行它,它始终返回false,但在网络可用,我可以拨打电话。

回答

1

NetworkInfo.State.CONNECTED告诉你,如果你有一个数据连接(通过WiFi或移动的。不是一个“对话”电话连接。

+0

我想知道,如果“移动网络”是可用的状态或不是(即我们的服务或覆盖区域)。这是可能与此程序 – yasserbn

+0

我也试过这段代码'code'finalConnectionManager connMgr =(ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE); final android.net (Mobile.isAvailable()){ //做点别的事。 }它不起作用,mobile.isAvailable()总是返回false。 – yasserbn

+1

ConnectivityManager仅处理数据连接。有关手机信号的详细信息,请查看本教程:http://www.firstdroid.com/2010/05/12/get-provider-gsm-signal-strength/ – Moritz

相关问题