下载文件前如何查看是否开启了WIFI?

How to check if I have enabled WIFI before downloading a file?

我有一个下载文件的按钮,并且工作正常。如果我没有 Internet 连接,则文件不会下载(很明显)。问题是应用程序继续尝试下载,而不是停止它。

我想展示一个 Toast 说 "The device its not connected" 或类似的东西,然后不开始下载过程。我想要一个 returns true 或 false 的函数,如果我现在有或没有可用的 WIFI 连接

我尝试使用这些 post 的答案:How to check currently internet connection is available or not in android,但即使在飞行模式下,函数重新调整也始终为真。

我使用 DownloadManager 下载文件,并在下载后使用 BroadcastReceiver 继续。

在清单文件中添加此权限

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

使用此条件检查 Wifi 是否已连接

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

这是网络连接检查代码

public class NetworUtil {
  private static NetworkInfo activeNetwork;
  public static boolean isInternetConnected(Context context) {
      if (context == null)
         return false;
      else {
          ConnectivityManager cm =(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
          NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
          return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
    }
 }
}

AndroidManifest 文件中必须需要以下权限。

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

在清单文件中添加此权限

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

以下条件对您有所帮助

ConnectivityManager connManager = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (wifi.isConnected()){
    // If Wi-Fi connected
}else{
    Toast.makeText(getApplicationContext() /*Context field*/,"Please Connect to Wifi",Toast.LENGTH_SHORT).show();
}