package com.brady.jlulife.Utils; import android.os.AsyncTask; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; /** * Created by brady on 15-12-16. */ public class NetNeedLoginCheckUtil extends AsyncTask<Integer, Integer, Boolean> { NeedLoginCallBack callBack; public NetNeedLoginCheckUtil(NeedLoginCallBack callBack) { super(); this.callBack = callBack; } @Override protected Boolean doInBackground(Integer... params) { return isWifiSetPortal(); } @Override protected void onPostExecute(Boolean result) { if (callBack != null) { callBack.needLogin(result); } } private boolean isWifiSetPortal() { final String mWalledGardenUrl = "http://connect.rom.miui.com/generate_204"; final int WALLED_GARDEN_SOCKET_TIMEOUT_MS = 10000; HttpURLConnection urlConnection = null; try { URL url = new URL(mWalledGardenUrl); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setInstanceFollowRedirects(false); urlConnection.setConnectTimeout(WALLED_GARDEN_SOCKET_TIMEOUT_MS); urlConnection.setReadTimeout(WALLED_GARDEN_SOCKET_TIMEOUT_MS); urlConnection.setUseCaches(false); urlConnection.getInputStream(); return urlConnection.getResponseCode() != 204; } catch (IOException e) { return false; } finally { if (urlConnection != null) { urlConnection.disconnect(); } } } public static void needLoginNetworkCheck(NeedLoginCallBack callBack) { new NetNeedLoginCheckUtil(callBack).execute(); } public interface NeedLoginCallBack{ void needLogin(boolean needLogin); } }