如何在WIFI开启但没有数据连接的情况下检查android中的Internet连接?

时间:2015-09-21 12:03:55

标签: android android-wifi

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

1 个答案:

答案 0 :(得分:0)

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

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。