在下载文件之前如何检查我是否已启用WIFI?

时间:2019-07-03 12:01:20

标签: java android android-internet

我有一个按钮,可以隐藏文件,并且工作正常。如果我没有Internet连接,则文件不会下载(显然)。问题在于该应用继续尝试下载,而不是停止下载。

我想显示一个Toast,上面写着“设备未连接”或类似的内容,然后不开始下载过程。如果我现在有WIFI连接,我想要一个返回true或false的函数

我尝试使用以下帖子的答案:How to check currently internet connection is available or not in android,但是即使在飞行模式下,该功能也始终会调整为真。

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

3 个答案:

答案 0 :(得分:1)

在清单文件中添加此权限

<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
}

答案 1 :(得分:0)

此处是网络连接检查代码

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" />

答案 2 :(得分:0)

在清单文件中添加此权限

<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();
}