本發(fā)明涉及智能硬件設(shè)備領(lǐng)域,特別是一種監(jiān)控網(wǎng)絡(luò)連接狀態(tài)的方法。
背景技術(shù):
現(xiàn)階段,互聯(lián)網(wǎng)業(yè)務(wù)告訴發(fā)展,各種智能終端也成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧D壳爸悄芙K端大多都需要從網(wǎng)絡(luò)上獲取數(shù)據(jù),所以訪問(wèn)網(wǎng)絡(luò)是再所難免。
在Android系統(tǒng)平臺(tái)下,我們?cè)谠L問(wèn)網(wǎng)絡(luò)之前,應(yīng)首先判斷一下網(wǎng)絡(luò)狀態(tài),根據(jù)當(dāng)前網(wǎng)絡(luò)狀態(tài)來(lái)進(jìn)行判斷處理,而并不是直接訪問(wèn)網(wǎng)絡(luò)即可。很多開(kāi)發(fā)者直接把網(wǎng)絡(luò)判斷這一步直接跳過(guò),直接訪問(wèn)網(wǎng)絡(luò),如果當(dāng)前處于斷網(wǎng)狀態(tài)時(shí),會(huì)導(dǎo)致各種體驗(yàn)不好。另很多情況下智能終端訪問(wèn)網(wǎng)絡(luò)是下載一張圖片 或者 下載一部電影,而用戶需要的是在Wi-Fi狀態(tài)下進(jìn)行下載文件,一般的普通訪問(wèn)則無(wú)限制。針對(duì)這種情況,監(jiān)控網(wǎng)絡(luò)狀態(tài)則無(wú)可避免。
其中Wi-Fi和有線連接 都是連接到路由器中,現(xiàn)階段很多路由器都做過(guò)當(dāng)沒(méi)有連接網(wǎng)絡(luò)時(shí),連接到路由器的終端請(qǐng)求訪問(wèn)網(wǎng)絡(luò),路由器將網(wǎng)絡(luò)地址攔截并重定向到一個(gè)新的地址,此時(shí)網(wǎng)絡(luò)判斷返回的ResponseCode值為200,導(dǎo)致終端網(wǎng)絡(luò)連接判斷錯(cuò)誤。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)上述現(xiàn)有技術(shù)中存在的問(wèn)題,提供一種監(jiān)控網(wǎng)絡(luò)狀態(tài)的方法,所述方法需要一個(gè)移動(dòng)終端、以及移動(dòng)終端連接的路由器,通過(guò)路由器訪問(wèn)外網(wǎng)的私有云服務(wù)器。本發(fā)明提供的技術(shù)方案是通過(guò)智能設(shè)備監(jiān)控當(dāng)手機(jī)端訪問(wèn)網(wǎng)絡(luò)時(shí),提供網(wǎng)絡(luò)連接狀態(tài),以便程序后續(xù)處理,另外監(jiān)控智能設(shè)備的私有云服務(wù)器是否能正確的訪問(wèn)到外部網(wǎng)絡(luò)。具有上述特點(diǎn)的家用智能設(shè)備具有如下技術(shù)方案。
一種監(jiān)控網(wǎng)絡(luò)連接狀態(tài)的方法,包括如下步驟:
步驟1、智能終端通過(guò)獲取狀態(tài)碼判斷智能終端當(dāng)前網(wǎng)絡(luò)狀態(tài);
步驟2、根據(jù)步驟1,通過(guò)狀態(tài)碼判斷智能終端當(dāng)前網(wǎng)絡(luò)狀態(tài)為Wi-Fi網(wǎng)絡(luò)狀態(tài)時(shí),所述智能終端通過(guò)路由器請(qǐng)求私有云服務(wù)器的連接狀態(tài)值;
步驟3,所述私有云服務(wù)器根據(jù)請(qǐng)求返回所述私有云服務(wù)器與路由器網(wǎng)絡(luò)連接的連接狀態(tài)值;
步驟4,所述智能終端分析連接狀態(tài)值,判斷路由器是否與外部網(wǎng)絡(luò)連接成功。
所述手機(jī)終端返回狀態(tài)碼,通過(guò)返回的狀態(tài)碼來(lái)判斷當(dāng)前網(wǎng)絡(luò)的網(wǎng)絡(luò)狀態(tài),如果當(dāng)前網(wǎng)絡(luò)狀態(tài)為移動(dòng)網(wǎng)絡(luò)狀態(tài),則可以根據(jù)協(xié)議判斷后續(xù)網(wǎng)絡(luò)請(qǐng)求是否可以訪問(wèn)。
所述智能終端請(qǐng)求私有云服務(wù)器的地址為所述請(qǐng)求約定且私有云無(wú)法訪問(wèn)的地址。
智能設(shè)備接收到私有云服務(wù)器返回的狀態(tài)值時(shí),判斷狀態(tài)值是否為所述請(qǐng)求的地址返回,如果是則可以連接外部網(wǎng)絡(luò)。
智能設(shè)備接收到私有云服務(wù)器返回的狀態(tài)值時(shí),判斷狀態(tài)值是否為所述請(qǐng)求的地址返回,如果不是則連不上外部網(wǎng)絡(luò)。
本發(fā)明的技術(shù)方案與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):提供了一種正確判斷網(wǎng)絡(luò)連接狀態(tài)的方法,通過(guò)路由器獲取外網(wǎng)連接私有云服務(wù)器的連接狀態(tài)值來(lái)判斷是否連接到外網(wǎng),避免頻繁讀取外網(wǎng)的私有云服務(wù)器的數(shù)據(jù),從而減輕私有云服務(wù)器的壓力。
附圖說(shuō)明
圖1是本發(fā)明的一種監(jiān)控網(wǎng)絡(luò)連接狀態(tài)的方法的流程框圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明,但是本發(fā)明可以由權(quán)利要求限定和覆蓋的多種不同方式實(shí)施。
一種監(jiān)控網(wǎng)絡(luò)連接狀態(tài)的方法,所述方法需要一種具有雙Wi-Fi的智能設(shè)備,其中一WIFI和手機(jī)連接組建局域網(wǎng),第二WIFI由所述智能設(shè)備的私有云服務(wù)器與路由器連接因特網(wǎng),具有上述技術(shù)特征的智能設(shè)備,其包括的監(jiān)控網(wǎng)絡(luò)連接狀態(tài)的方法,是通過(guò)如下步驟實(shí)現(xiàn)的:
步驟1、智能設(shè)備獲取與智能設(shè)備通信連接的手機(jī)終端網(wǎng)絡(luò)狀態(tài);
步驟2、所述手機(jī)終端返回狀態(tài)碼,所述智能設(shè)備通過(guò)返回的狀態(tài)碼來(lái)判斷當(dāng)前網(wǎng)絡(luò)的網(wǎng)絡(luò)狀態(tài);
步驟3,所述智能設(shè)備獲取連接外網(wǎng)的狀態(tài)值,根據(jù)所述狀態(tài)值來(lái)判斷當(dāng)前網(wǎng)絡(luò)是否連接上因特網(wǎng)
通過(guò)本發(fā)明的具體實(shí)施例,結(jié)合圖1所列出的步驟,來(lái)具體說(shuō)明。
在步驟1中,智能設(shè)備訪問(wèn)外部網(wǎng)絡(luò)前,判斷當(dāng)前網(wǎng)絡(luò)連接。
在智能設(shè)備中,通過(guò)軟件獲取NetworkInfo在得到NetworkInfo networkInfo-connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
在步驟2中,通過(guò)獲取NetworkInfo 狀態(tài)值networkInfo.getType()來(lái)獲取當(dāng)前手機(jī)智能終端網(wǎng)絡(luò)狀態(tài)。獲取的狀態(tài)值如下:
networkInfo.getType() == 0 當(dāng)前網(wǎng)絡(luò)為移動(dòng)網(wǎng)絡(luò)狀態(tài);
networkInfo.getType() == 1 當(dāng)前網(wǎng)絡(luò)為WIFI網(wǎng)絡(luò)狀態(tài)。
在步驟3中,通過(guò)返回的狀態(tài)碼來(lái)判斷當(dāng)前網(wǎng)絡(luò)的網(wǎng)絡(luò)狀態(tài),如果當(dāng)前網(wǎng)絡(luò)狀態(tài)為移動(dòng)網(wǎng)絡(luò)狀態(tài),則可以根據(jù)協(xié)議判斷后續(xù)網(wǎng)絡(luò)請(qǐng)求是否可以訪問(wèn),例如:可以訪問(wèn)普通協(xié)議請(qǐng)求,不允許訪問(wèn)下載上傳功能請(qǐng)求。
如果當(dāng)前網(wǎng)絡(luò)狀態(tài)為WIFI網(wǎng)絡(luò)狀態(tài), 則“get”請(qǐng)求連接connect私有云地址,私有云返回連接狀態(tài)值。
根據(jù)返回的狀態(tài)值來(lái)判斷當(dāng)前網(wǎng)絡(luò)是否連接上網(wǎng)絡(luò)。
地址為客戶端與私有云服務(wù)端定義的地址,私有云服務(wù)端是找不到該地址訪問(wèn)的資源。
狀態(tài)值一般為數(shù)值404 或405 ,當(dāng)客戶端與服務(wù)端協(xié)議定義的地址資源找不到,狀態(tài)值為 404,或者私有云禁止訪問(wèn)“get”請(qǐng)求時(shí) ,狀態(tài)值為405,Web服務(wù)器返回該狀態(tài)值給客戶端。
客戶端接收到私有云服務(wù)器返回的狀態(tài)值時(shí),判斷是否為404或405,如果是則可以連接外部網(wǎng)絡(luò),如果不是則連不上外部網(wǎng)絡(luò)。
為什么客戶端訪問(wèn)私有云是訪問(wèn)一個(gè)訪問(wèn)不到資源的地址呢?這是因?yàn)楝F(xiàn)階段有很多路由器,當(dāng)路由器沒(méi)有連接外部網(wǎng)絡(luò)時(shí),而客戶端通過(guò)WIFI或者有線連接路由器,客戶端顯示的網(wǎng)絡(luò)連接狀態(tài)時(shí)已經(jīng)連接網(wǎng)絡(luò)狀態(tài),這是不正確的。
而當(dāng)客戶端請(qǐng)求connect連接私有云時(shí),不管是否地址正確,路由器都會(huì)將網(wǎng)絡(luò)connect地址攔截并重定向一個(gè)新的地址,此時(shí)返回的狀態(tài)值則為200,一般情況下,狀態(tài)值200為私有云服務(wù)器找到了網(wǎng)絡(luò)地址的資源,連接正確。但此時(shí)因?yàn)榈刂芬呀?jīng)給路由器重定向到另外一個(gè)地址,所以不能依次來(lái)判斷連接外部網(wǎng)絡(luò)是否連接成功,所以需要跟私有云定義一個(gè)錯(cuò)誤地址來(lái)進(jìn)行網(wǎng)絡(luò)判斷。例如: 客戶端發(fā)送定義的地址到私有云,經(jīng)過(guò)路由器時(shí),路由器發(fā)現(xiàn)沒(méi)有連接外部網(wǎng)絡(luò),將地址重定向到新地址,返回客戶端為200,則客戶端判斷當(dāng)前網(wǎng)絡(luò)連接失敗,如果訪問(wèn)的地址返回的是404或者405的話,則肯定該404或者405為外部WEB服務(wù)器返回的狀態(tài)碼,則可判定當(dāng)前可以連接外部網(wǎng)絡(luò)。
以上僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。