日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 连接wifi 检测是否需要portal 认证

發布時間:2023/12/14 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 连接wifi 检测是否需要portal 认证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近在做一個新需求,就是針對開機歡迎引導頁,當連接如星巴克,KFC,地鐵上等公共場所的WIFI時,都需要認證功能,而我要調起這個認證頁面呈現給用戶,登陸任何網頁會跳轉到wifi得認證頁面,輸入賬號密碼,點擊驗證,能夠驗證wifi,并保證手機網絡能正常使用。某些手機管家軟件在手機連接上CMCC等wifi時,會彈出通知欄提示跳轉到webview去進行portal驗證。而我由于各種限制原因,并不能自動調用,就需要自己來處理這些功能了,而他們是怎樣檢測的呢?請往下看~

正文

我們的目標很明確,就是要在wifi連接后,判斷wifi是否需要portal驗證?如果需要portal驗證,那么我們直接啟動一個Activity,默認用WebView去加載一個網頁,比如:http://XXX.com,服務器就會去檢測當前網絡是否需要驗證(Google會進行一個http的訪問,如果返回碼為204,就證明手機當前連接的wifi,是不需要進行portal驗證的)portal 檢測到有新的連接,就會去劫持wifi路由,強制訪問wifi的portal驗證網頁,用戶只要完成驗證,就可以使用該網絡了,實現原理如下:

/*** 驗證當前wifi是否需要Portal驗證* @return*/ private boolean isWifiSetPortal() {String mWalledGardenUrl = "http://g.cn/generate_204";// 設置請求超時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();// 判斷返回狀態碼是否204return urlConnection.getResponseCode()!=204;} catch (IOException e) {// e.printStackTrace();return false;} finally {if (urlConnection != null) {//釋放資源urlConnection.disconnect();}}}

這塊驗證一般放在網絡改變的廣播接受者里面處理的action.equals(ConnectivityManager.CONNECTIVITY_ACTION

把驗證方法封裝一下就可以判斷使用了,很簡單吧~~

package woyou.welcome.api;import android.os.AsyncTask;import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL;/*** Created by Xiho on 11:09* MyBlog: xuhaoblog.com* GitHub: github.com/git-xuhao* Function:*/ public class CheckWifiLoginTask extends AsyncTask<Integer,Integer,Boolean> {private ICheckWifiCallBack mCallBack;public CheckWifiLoginTask (ICheckWifiCallBack mCallBack){super();this.mCallBack=mCallBack;}@Overrideprotected Boolean doInBackground(Integer... params) {return isWifiSetPortal();}@Overrideprotected void onPostExecute(Boolean result) {if (mCallBack != null) {mCallBack.portalNetWork(result);}}/*** 驗證當前wifi是否需要Portal驗證* @return*/private boolean isWifiSetPortal() {String mWalledGardenUrl = "http://g.cn/generate_204";// 設置請求超時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();// 判斷返回狀態碼是否是204return urlConnection.getResponseCode()!=204;} catch (IOException e) {// e.printStackTrace();return false;} finally {if (urlConnection != null) {//釋放資源urlConnection.disconnect();}}}/*** 檢測Wifi 是否需要portal 認證* @param callBack*/public static void checkWifi(ICheckWifiCallBack callBack){new CheckWifiLoginTask(callBack).execute();}public interface ICheckWifiCallBack{void portalNetWork(boolean isLogin);}}

在廣播接收里判斷網絡是否需要portal認證:

/** * 接受網絡改變的廣播 */private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context mContext, Intent intent) {String action = intent.getAction();if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {//.....省略邏輯portalWifi();} }};/** wifi 認證 檢測 **/private void portalWifi() {CheckWifiLoginTask.checkWifi(new CheckWifiLoginTask.ICheckWifiCallBack() {@Overridepublic void portalNetWork(boolean isLogin) {//不需要wifi認證if(!isLogin){//TODO... }else {//TODO...}}});}

實現原理很簡單吧~

總結

以上是生活随笔為你收集整理的Android 连接wifi 检测是否需要portal 认证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一本色道久久综合亚洲精品 | 亚洲精品观看 | 日韩精品中文字幕在线播放 | 我的公把我弄高潮了视频 | 午夜久久剧场 | 久草欧美视频 | 成人欧美在线视频 | 一本色道久久加勒比精品 | 自拍偷拍国产精品 | 91黄色免费网站 | 国产日韩精品久久 | 激情综合啪啪 | 国产精品免费av一区二区 | 欧美日韩国产区 | 少妇脱了内裤让我添 | 欧州一区 | 四虎精品影视 | 日韩中文字幕网 | 深夜免费福利 | 日韩国产综合 | 国产69精品一区二区 | 色婷婷av一区二区三区四区 | 国产精品自在线 | 国产探花在线观看 | 久久成人18免费观看 | 久久发布国产伦子伦精品 | 久久久久久中文字幕 | 男女视频一区 | 欧美亚洲日本一区 | 亚洲国产免费 | 日韩午夜免费 | 欧美国产高清 | 国产成人精品影院 | 91久久久久久久久 | 成人午夜网站 | 欧美一区二区日韩 | 黑人操日本| 亚洲超碰在线观看 | 久久久久久久久久久久久国产 | 久久久精品亚洲 | 欧美视频一区 | 国产视频污| 在线精品视频免费观看 | 音影先锋av资源 | 成人一区二区电影 | 中文字字幕在线中文 | 中文资源在线观看 | 国产免费自拍 | 国产一区二区自拍 | 依人成人综合网 | 成人xxx| 看片日韩| av黄色大片 | 欧美天堂在线观看 | 精品久久99| 欧美理伦片在线播放 | 免费看一级黄色大全 | 国产精品久久久久桃色tv | 奇米久久久| 精品在线视频观看 | 午夜免费一区二区 | 色成人亚洲 | 一本色道久久综合无码人妻 | 美丽的姑娘在线观看 | 在线观看亚洲一区二区 | 少妇久久久久久 | av大片免费在线观看 | 97人人爽人人爽人人爽人人爽 | 暗呦丨小u女国产精品 | 成年人午夜视频 | 亚洲女则毛耸耸bbw 边吃奶边添下面好爽 | 日本中文字幕影院 | 黄色a一级片 | 国产高清不卡一区 | 中出一区二区 | 日本黄网站在线观看 | 91丨国产丨白丝 | 超色视频 | 激情丁香网 | 91亚洲专区| 欧美色图日韩 | 99久久精品无码一区二区毛片 | 精品人妻伦一二三区久 | 色噜噜狠狠一区二区三区 | 激情超碰在线 | 欧美色成人 | 国产在线色站 | 97精品久久人人爽人人爽 | 一区二区伦理片 | 日韩精品成人av | 亚洲第一页av| 国产av日韩一区二区三区精品 | 最新黄色av网站 | 中文字幕 日韩有码 | 久久久久精| 国产污在线观看 | 顶级毛茸茸aaahd极品 | 日本在线加勒比 | 成人黄色免费观看 |