WiFi共享系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于WiFi共享技術(shù)領(lǐng)域,尤其涉及一種WiFi共享系統(tǒng)。
【背景技術(shù)】
[0002]傳統(tǒng)的WiFi共享方式主要是在咖啡廳,機(jī)場(chǎng)等公共場(chǎng)所,通過向店家問詢密碼之后手動(dòng)輸入密碼來(lái)接入互聯(lián)網(wǎng)。
[0003]WiFi共享領(lǐng)域較為先進(jìn)的公司如Fon Technology S.L公司開創(chuàng)了 P2P式無(wú)線寬帶共享社區(qū)模式。該模式的核心是發(fā)動(dòng)所有擁有WIFI AP設(shè)備和寬帶接入資源的人或機(jī)構(gòu),通過加盟的方式開放自己的資源。用戶只需共享出自己的AP,就可以免費(fèi)接入聯(lián)盟中其他用戶的AP。
[0004]通過問詢密碼手動(dòng)輸入方式該耗時(shí)時(shí)間久,輸入不方便,且AP所有者不一定愿意提供WiFi密碼。
[0005]Fon公司的共享社區(qū)模式需要購(gòu)買Fon路由器,在路由器中安裝Fon固件就可以加入到Fon網(wǎng)絡(luò)中,但目前并不是所有的無(wú)線路由器都能夠兼容Fon公司的固件。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于提供一種WiFi共享系統(tǒng),旨在解決現(xiàn)有的WiFi共享方法存在的通過問詢密碼手動(dòng)輸入方式耗時(shí)較長(zhǎng),輸入不方便,F(xiàn)on路由器使用條件有限的問題。
[0007]本發(fā)明是這樣實(shí)現(xiàn)的,一種WiFi共享系統(tǒng),該WiFi共享系統(tǒng)包括:客戶端界面模塊、服務(wù)器界面模塊、登錄認(rèn)證模塊、流量控制模塊、計(jì)費(fèi)充值模塊、數(shù)據(jù)庫(kù)模塊;
[0008]客戶端界面模塊,用于實(shí)現(xiàn)客戶的登錄;
[0009]服務(wù)器界面模塊,用于實(shí)現(xiàn)服務(wù)器管理;
[0010]登錄認(rèn)證模塊,與客戶端界面模塊連接,對(duì)客戶端的登錄身份進(jìn)行認(rèn)證;
[0011]流量控制模塊,與登錄認(rèn)證模塊連接,用于實(shí)現(xiàn)WiFi流量控制;
[0012]計(jì)費(fèi)充值模塊,與流量控制模塊連接,用于計(jì)算產(chǎn)生流量的費(fèi)用;
[0013]數(shù)據(jù)庫(kù)模塊,與服務(wù)器界面模塊、登錄認(rèn)證模塊、流量控制模塊、計(jì)費(fèi)充值模塊5連接,用于存儲(chǔ)登錄記錄、WiFi流量、產(chǎn)生流量的費(fèi)用。
[0014]進(jìn)一步,該WiFi共享系統(tǒng)的WiFi共享方法具體包括:
[0015]WiFi提供者注冊(cè)階段打開自己的AP,軟件會(huì)自動(dòng)掃描設(shè)備的相關(guān)信息,包括AP的MAC地址,WiFi密碼,廣域網(wǎng)地址和遠(yuǎn)程配置端口號(hào),將信息提交給服務(wù)器,等待WiFi使用者接入,WiFi使用者的移動(dòng)終端搜索到iflying字樣的WiFi并點(diǎn)擊確定后,會(huì)向系統(tǒng)服務(wù)器發(fā)送所連接路由器的Mac地址和廣域網(wǎng)地址等信息,系統(tǒng)服務(wù)器通過路由器Mac地址查詢數(shù)據(jù)庫(kù)獲得WiFi提供者在注冊(cè)階段提交到數(shù)據(jù)庫(kù)的WiFi密碼,服務(wù)器通過密文形式發(fā)送給WiFi使用者WiFi密碼,WiFi使用者接入互聯(lián)網(wǎng);系統(tǒng)從用戶接入互聯(lián)網(wǎng)的時(shí)刻開始統(tǒng)計(jì)WiFi使用者使用流量,結(jié)束使用后給服務(wù)器發(fā)送結(jié)束使用請(qǐng)求,完成操作。
[0016]進(jìn)一步,用戶注冊(cè)的步驟具體包括;
[0017]步驟一,注冊(cè)過程:
[0018]通過手機(jī)號(hào)碼或郵箱注冊(cè)成為系統(tǒng)會(huì)員,供選擇身份有WiFi提供者、WiFi使用者、WiFi提供者+WiFi使用者;
[0019]當(dāng)選擇身份為WiFi提供者時(shí),打開AP,自動(dòng)掃描設(shè)備的相關(guān)信息,包括AP的MAC地址,WiFi密碼,廣域網(wǎng)地址和遠(yuǎn)程配置端口號(hào),將信息提交給服務(wù)器。其他注冊(cè)內(nèi)容包括手機(jī)號(hào)碼,綁定銀行卡號(hào)或支付寶賬號(hào);
[0020]當(dāng)選擇身份為WiFi使用者時(shí),需要為賬戶充值,注冊(cè)內(nèi)容包括手機(jī)號(hào)碼,綁定銀行卡號(hào)或支付寶賬號(hào);
[0021]當(dāng)選擇身份為WiFi提供者+WiFi使用者時(shí),需要打開AP,自動(dòng)掃描設(shè)備的相關(guān)信息,包括AP的MAC地址,WiFi密碼,廣域網(wǎng)地址和遠(yuǎn)程配置端口號(hào),將信息提交給服務(wù)器,其他注冊(cè)內(nèi)容包括手機(jī)號(hào)碼,綁定銀行卡號(hào)或支付寶賬號(hào);
[0022]步驟二,搜索過程:
[0023]WiFi提供者開啟AP,并統(tǒng)一命名為if lying,WiFi使用者的移動(dòng)終端搜索iflying字樣的WiFi并點(diǎn)擊確定;
[0024]步驟三,使用過程:
[0025]WiFi使用者的移動(dòng)終端搜索到iflying字樣的WiFi并點(diǎn)擊確定后,向系統(tǒng)服務(wù)器發(fā)送所連接路由器的Mac地址和廣域網(wǎng)地址等信息,系統(tǒng)服務(wù)器通過路由器Mac地址查詢數(shù)據(jù)庫(kù)獲得WiFi提供者在注冊(cè)階段提交到數(shù)據(jù)庫(kù)的WiFi密碼,服務(wù)器通過密文形式發(fā)送給WiFi使用者WiFi密碼,WiFi使用者接入互聯(lián)網(wǎng),從用戶接入互聯(lián)網(wǎng)的時(shí)刻開始統(tǒng)計(jì)WiFi使用者使用流量,結(jié)束使用后給服務(wù)器發(fā)送結(jié)束使用請(qǐng)求,WiFi使用者移動(dòng)客戶端顯示使用過程中產(chǎn)生的流量及其對(duì)應(yīng)金額,WiFi提供者客戶端也顯示提供WiFi過程中產(chǎn)生的流量及其對(duì)應(yīng)金額;
[0026]步驟四,后續(xù)過程:
[0027]WiFi提供者選擇對(duì)獲得金額進(jìn)行提現(xiàn),WiFi使用者查詢賬戶余額。
[0028]進(jìn)一步,該WiFi共享系統(tǒng)的WiFi掃描流程具體包括:
[0029]步驟一,啟動(dòng)wifi服務(wù):
[0030]在SystemServer 啟動(dòng)的時(shí)候,會(huì)生成一個(gè) ConnectivityService 的實(shí)例;
[0031]ConnectivityService 類中 private ConnectivityService 構(gòu)造函數(shù)創(chuàng)建WifiService 和 WifiStateTracker 對(duì)象;
[0032]創(chuàng)建WifiStateTracker和WifiService對(duì)象用來(lái)啟動(dòng)wifi管理服務(wù)WifiStateTracker會(huì)創(chuàng)建WifiMonitor用來(lái)接收來(lái)自底層的事件,WifiService和WifiMonitor是整個(gè)模塊的核心;
[0033]WifiService負(fù)責(zé)啟動(dòng)關(guān)閉wpa_supplicant、啟動(dòng)關(guān)閉WifiMonitor監(jiān)視線程和把命令下發(fā)給wpa_supplicant ;
[0034]WifiMonitor開始運(yùn)行線程,會(huì)請(qǐng)求連接wpa_supplicant,通過調(diào)用WifiStateTracker 函數(shù) connectToSupplicant 然后通過 wifi, c 的 wifi_connect_to_supplicant,接著向 wpa_ctrl 的 wpa_ctrl_open。然后通過 CreateFile 函數(shù)向 wpa_supplicant讀取數(shù)據(jù);連接成功后會(huì)發(fā)送EVENT_SUPPLICANT_CONNECT1N消息啟動(dòng)獲取DHCP地址線程阻塞調(diào)用,并記錄自己的MAC地址接著開啟一個(gè)死循環(huán)處理wpa_supplicant發(fā)送的事件;
[0035]當(dāng)用戶點(diǎn)擊W1-Fi 按鈕的時(shí) WifiEnabler 中的 onPreferenceChange 函數(shù)會(huì)被調(diào)用,再由該函數(shù)調(diào)用WifiManager的setWifiEnabled函數(shù),先引用AIDL經(jīng)由IffifiManager 通過 Binder 機(jī)制調(diào)用 WifiService 的 setWif iEnabled 設(shè)置 Wifi 開啟狀態(tài),同時(shí) WifiService 會(huì)發(fā)送 MESSAGE_ENABLE_WIFI 消息,由 WifiService 的setffifiEnabledBlocking函數(shù)響應(yīng)該消息,負(fù)責(zé)Wifi可用的需要工作,首先他會(huì)加載驅(qū)動(dòng)1adDriver O,然后開啟wpa_supplicant再注冊(cè)廣播消息,而后通過WifiStateTracker來(lái)啟動(dòng)WifiMonitor中的監(jiān)視線程,以上使能成功后,會(huì)調(diào)用setWifiEnabledState最后廣播WIFI_STATE_CHANGED_ACT1N 這個(gè) Intent,至此 Wifi 功能開啟。
[0036]步驟二,掃描AP
[0037]WifiSettings 和 WifiEnabler 創(chuàng)建的時(shí)候就會(huì)向 Android 注冊(cè)接收 WIFI_STATE_CHANGED_ACT1N,因此會(huì)收到 WIFI_STATE_CHANGED_ACT1N 這個(gè) Intent,WifiEnabler 負(fù)責(zé)使得圖標(biāo)加亮,WifiSettings負(fù)責(zé)使得開啟掃描AP,經(jīng)由WifiService的startScan,再通過 JNI 由 android_net_wif i_scanCommand 函數(shù)向 wpa_supplicant 發(fā)送掃描命令.當(dāng)wpa_supplicant處理完SCAN命令后,它會(huì)向控制通道發(fā)送事件通知掃描完成,從而 wifi_wait_for_event 函數(shù)會(huì)接收到該事件,由此 WifiMonitor 中的 MonitorThread會(huì)被執(zhí)行來(lái)處理接掃描結(jié)果事件,線程通過WifiStateTracker廣播SCAN_RESULTS_AVAILABLE_ACT1N這個(gè)Intent,而WifiSettings注冊(cè)了接收此Intent,最終由其相應(yīng)函數(shù)UpdateAccessPoints將AP列表,以⑶I的形式列出來(lái)。
[0038]進(jìn)一步,移動(dòng)終端WiFi連接流程包括:
[0039]當(dāng)用戶選擇一個(gè)iflying字樣的AP時(shí)會(huì)彈出一個(gè)AP參數(shù)配置對(duì)話框,此對(duì)話框會(huì)顯示當(dāng)前選擇的AP信號(hào)強(qiáng)度,并觸發(fā)一個(gè)點(diǎn)擊事件,移動(dòng)終端軟件會(huì)向系統(tǒng)服務(wù)器發(fā)送所連接路由器的Mac地址和廣域網(wǎng)地址信息,系統(tǒng)服務(wù)器通過路由器Mac地址查詢數(shù)據(jù)庫(kù)獲得WiFi提供者在注冊(cè)階段提交到數(shù)據(jù)庫(kù)的W