【问题标题】:How to check the Internet connection in android when WIFI is On but No Data Connection?当WIFI打开但没有数据连接时如何检查android中的互联网连接?
【发布时间】:2015-09-21 12:03:54
【问题描述】:

您好,当我从应用程序访问服务器时,我的应用程序崩溃了,因为我的手机连接到其他手机的 Wifi 热点,因为移动数据被禁用,如果我检查 wifi 的连接状态,它将返回 true,所以我允许打服务器,我的应用程序崩溃...... 告诉我如何处理这种情况。

【问题讨论】:

  • 你不使用连接超时机制?还是网络服务器返回的响应?还是 Http 连接状态码?
  • 修复导致您的应用崩溃的错误。
  • 嗨,告诉我如何找到我们的 wifi 是否有互联网连接
  • 没有快速的方法来判断您的互联网连接是否不会将大量数据路由到互联网上的某个特定位置。
  • 感谢您的 cmets

标签: android android-wifi


【解决方案1】:

使用此方法检查您的互联网是否正常

public static boolean hasActiveInternetConnection(Context context) {
        if (isNetworkAvailable(context)) {
            try { 
                HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
                urlc.setRequestProperty("User-Agent", "Test");
                urlc.setRequestProperty("Connection", "close");
                urlc.setConnectTimeout(1500); 
                urlc.connect();
                return (urlc.getResponseCode() == 200);
            } catch (IOException e) {
                Log.e(LOG_TAG, "Error checking internet connection", e);
            } 
        } else { 
            Log.d(LOG_TAG, "No network available!");
        } 
        return false; 
    } 

确保您不在主线程上运行此代码,否则您将收到 NetworkOnMainThread 异常(在 Android 3.0 或更高版本中)。请改用 AsyncTask 或 Runnable。

【讨论】:

  • 嗨,我已经试过这个了,检查状态需要很长时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
  • 2017-08-21
  • 1970-01-01
  • 2015-01-02
  • 1970-01-01
  • 2021-10-30
相关资源
最近更新 更多