【问题标题】:how to check a network is connected to wifi in android [duplicate]如何在android中检查网络是否连接到wifi [重复]
【发布时间】:2013-04-06 10:23:29
【问题描述】:

现在我正在开发一个应用程序。我使用 ConnectivManager 检查了 android 中的互联网连接。我检查了 Mobile 3g 和 WIFI。我关闭了 WIFI 连接并检查了它是否可以正常工作。然后我打开WIFI连接,但断开了WIFI中的所有网络。现在我检查但它显示WIFI已连接但我想检查WIFI打开时网络是否连接到WIFI或WIFI打开时未连接到WIFI。我不知道如何编码。任何人都可以帮助提供所需的代码吗?

提前致谢

【问题讨论】:

标签: android


【解决方案1】:
public boolean isWifiEnabled(){
       ConnectivityManager cm = (ConnectivityManager) c.getSystemService(
                            Context.CONNECTIVITY_SERVICE);
       NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

       if (wifiNetwork != null && wifiNetwork.isConnected()) {
          return true;
       }
    return false;
}

别忘了使用以下权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>

【讨论】:

  • 其实这个是用来检查WIFI是否连接的,但是我想要的是检查是否有WIFI网络连接到WIFI
  • 没有。我检查了WIFI是否已连接。我打开了 WIFI 连接。但我禁用了所有 wifi 网络。现在我想检查WIFI是否连接?如果已连接,则必须检查是否连接了任何 WIFI 网络?
  • 先用我的方法检查wifi是否连接。然后检查网络连接。如果网络不可用,则 wifi 网络未启用..(或者我可能误解了您的查询)
  • 实际上我拥有三个已配置的 WIFI 网络。我打开了 WIFI 连接,但禁用了所有这三个网络。现在我需要编写代码来显示“未连接网络的 WIFI 连接”
【解决方案2】:

检查互联网是否通过 WiFi 或手机连接

public static boolean hasInternet(Activity a) {
 boolean hasConnectedWifi = false;
 boolean hasConnectedMobile = false;

 ConnectivityManager cm = (ConnectivityManager) a.getSystemService(Context.CONNECTIVITY_SERVICE);
 NetworkInfo[] netInfo = cm.getAllNetworkInfo();
 for (NetworkInfo ni : netInfo) {
  if (ni.getTypeName().equalsIgnoreCase("wifi"))
   if (ni.isConnected())
    hasConnectedWifi = true;
  if (ni.getTypeName().equalsIgnoreCase("mobile"))
   if (ni.isConnected())
    hasConnectedMobile = true;
 }
 return hasConnectedWifi || hasConnectedMobile;
}

【讨论】:

    【解决方案3】:

    通过这段代码,您应该能够使用 ConnectivityManager。从那里您可以检查它是否已连接甚至可用。

            ConnectivityManager connManager = (ConnectivityManager)   getSystemService(CONNECTIVITY_SERVICE);
            NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    
            if (mWifi.isConnected()) {
                // Do whatever
            }
    

    【讨论】:

      【解决方案4】:

      检查网络连接

      public class CheckNetwork {
      
      
      private static final String TAG = CheckNetwork.class.getSimpleName();
      
      
      
      public static boolean isInternetAvailable(Context context)
      {
          NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
          context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
      
          if (info == null)
          {
               Log.d(TAG,"no internet connection");
               return false;
          }
          else
          {
              if(info.isConnected())
              {
                  Log.d(TAG," internet connection available...");
                  return true;
              }
              else
              {
                  Log.d(TAG," internet connection");
                  return true;
              }
      
          }
      }
       }
      

      在你的活动中

            if(Checknetwork.isInternetAvailable(MainActivity.this)
            {
                // do something
            }
      

      记得在清单文件中添加权限

      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
      

      这还会检查您是否连接到移动网络或 wifi。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-09
        • 2013-08-07
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多