我正在使用以下代码检查网络连接:

public static boolean haveInternet(Context ctx)
{
    NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

   if (info == null || !info.isConnected()) {
          return false;  // no connection
   }

  return true;   // true if having connection
}


现在,在“无连接”上,我使用以下代码启动“无线设置”对话框:

    context.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));


在这里,用户可以“打开/关闭”无线,现在我如何知道用户是否已经“打开”了wi-fi?即上述意图表示成功建立无线连接后会返回什么结果。我该如何检查?

我想我需要调用startActivityForResult方法,但不知道该怎么办?

更新:

我想做与http://groups.google.is/group/android-developers/msg/6874a5e4675dffdb相同的方法

最佳答案

现在我如何知道用户是否已“启用” Wi-Fi?即上述意图表示成功建立无线连接后会返回什么结果。我该如何检查?


没有结果。您可以通过调用上面显示的代码或监视相关的广播Intent(请参见ConnectivityManager及其CONNECTIVITY_ACTIONWifiManager及其WIFI_STATE_CHANGED_ACTIONNETWORK_STATE_CHANGED_ACTION)来对其进行检查。


  我想我需要调用startActivityForResult方法,但不知道该怎么办?


该活动不支持startActivityForResult()

10-08 15:30