【问题标题】:How to check if I have enabled WIFI before downloading a file? [duplicate]如何在下载文件之前检查我是否启用了 WIFI? [复制]
【发布时间】:2019-11-14 02:52:04
【问题描述】:

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

我想显示一个 Toast 说“设备未连接”或类似的东西,然后不开始下载过程。如果我有 WIFI 连接可用,我想要一个返回 true 或 false 的函数

我尝试使用这些帖子的答案:How to check currently internet connection is available or not in android,但即使在飞行模式下,该功能也总是返回 true。

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

【问题讨论】:

  • I try with the answers of these post你尝试了哪一个?
  • 好的,我认为问题在于我如何测试代码。我正在使用模拟器对其进行测试,删除了笔记本电脑的 wifi 连接。但这不是重点。我必须在模拟器上手动删除 wifi 连接。现在它起作用了。还是谢谢

标签: java android android-internet


【解决方案1】:

在清单文件中添加此权限

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

【讨论】:

  • 好的,成功了,谢谢!
【解决方案2】:

在清单文件中添加此权限

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

【讨论】:

    【解决方案3】:

    这是网络连接检查代码

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 2016-02-29
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      相关资源
      最近更新 更多