本發(fā)明涉及移動通信領(lǐng)域,具體而言,涉及一種wifi連接方法及裝置。
背景技術(shù):
傳統(tǒng)的android開機流程中wifi相關(guān)的服務(wù)啟動較晚,并且wifi服務(wù)本身狀態(tài)機運行效率較低,導致開機顯示桌面/launcher/home后,路由器/ap仍然未鏈接上,導致應(yīng)用數(shù)據(jù)無法更新,無法及時觀看網(wǎng)絡(luò)視頻等。因此,如何加快開機后wifi的啟動流程,以實現(xiàn)在設(shè)備桌面顯示之前就連接至相應(yīng)路由器的問題亟待解決。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種wifi連接方法及裝置,以解決上述問題。
本發(fā)明較佳實施例提供一種wifi連接方法,應(yīng)用于能夠與路由器建立通信連接的終端設(shè)備,所述方法包括:
接收開機觸發(fā)指令,啟動終端設(shè)備;
開辟第一進程,進行系統(tǒng)軟件初始化;
開辟第二進程,創(chuàng)建nativewifi服務(wù)程序,內(nèi)核進程init啟動nativewifi服務(wù)程序;
進行wifi硬件設(shè)備狀態(tài)檢測,判斷所述wifi硬件設(shè)備是否已具備wifi連接功能,若所述wifi硬件設(shè)備已具備wifi連接功能,則進行wifi模塊使能進程;
根據(jù)系統(tǒng)中的路由器信息進行wifi聯(lián)網(wǎng),并將聯(lián)網(wǎng)狀態(tài)同步至所述第一進程。
進一步地,所述進行系統(tǒng)軟件初始化的步驟,包括:
在所述第一進程中,內(nèi)核進程init啟動系統(tǒng)服務(wù)程序;
在所述系統(tǒng)服務(wù)程序的觸發(fā)下,啟動wifi服務(wù)項;
通過所述wifi服務(wù)項啟動wifi狀態(tài)機。
進一步地,所述進行wifi硬件設(shè)備狀態(tài)檢測,判斷所述wifi硬件設(shè)備是否已具備wifi連接功能的步驟,包括:
通過在代碼中使用查看函數(shù)以查看所述wifi硬件設(shè)備的接口是否存在wifi節(jié)點,若存在wifi節(jié)點,則判定所述wifi硬件設(shè)備已具備wifi連接功能。
進一步地,所述進行wifi模塊使能進程的步驟,包括:
所述第二進程中,在nativewifi服務(wù)程序啟動后,加載wifi內(nèi)核模塊,并啟動硬件適配層進程;
將所述硬件適配層進程的啟動狀態(tài)同步至所述第一進程。
進一步地,所述根據(jù)系統(tǒng)中的路由器信息進行wifi聯(lián)網(wǎng),將聯(lián)網(wǎng)狀態(tài)同步至所述第一進程的步驟,包括:
在所述硬件適配層進程中獲取系統(tǒng)預存的路由器信息,所述路由器信息包括路由器的ssid、密碼信息以及加密方式;
根據(jù)獲取到的所述路由器的ssid、密碼信息以及加密方式,所述硬件適配層進程啟動后自動連接至相應(yīng)路由器;
將所述第二進程中的路由器連接狀態(tài)同步至所述第一進程。
本發(fā)明另一較佳實施例提供一種wifi連接裝置,應(yīng)用于能夠與路由器建立通信連接的終端設(shè)備,所述wifi連接裝置包括:
指令接收模塊,用于接收開機觸發(fā)指令,啟動終端設(shè)備;
初始化模塊,用于開辟第一進程,進行系統(tǒng)軟件初始化;
創(chuàng)建模塊,用于開辟第二進程,創(chuàng)建nativewifi服務(wù)程序,內(nèi)核進程init啟動nativewifi服務(wù)程序;
判斷模塊,用于進行wifi硬件設(shè)備狀態(tài)檢測,判斷所述wifi硬件設(shè)備是否已具備wifi連接功能,若所述wifi硬件設(shè)備已具備wifi連接功能,則進行wifi模塊使能進程;
聯(lián)網(wǎng)模塊,用于根據(jù)系統(tǒng)中的路由器信息進行wifi聯(lián)網(wǎng),并將聯(lián)網(wǎng)狀態(tài)同步至所述第一進程。
進一步地,所述初始化模塊包括系統(tǒng)服務(wù)程序啟動單元、wifi服務(wù)項啟動單元以及wifi狀態(tài)機啟動單元;
所述系統(tǒng)服務(wù)程序啟動單元用于在所述第一進程中,內(nèi)核進程init啟動系統(tǒng)服務(wù)程序;
所述wifi服務(wù)項啟動單元用于在所述系統(tǒng)服務(wù)程序的觸發(fā)下,啟動wifi服務(wù)項;
所述wifi狀態(tài)機啟動單元用于通過所述wifi服務(wù)項啟動wifi狀態(tài)機。
進一步地,所述判斷模塊還用于通過在代碼中使用查看函數(shù)以查看所述wifi硬件設(shè)備的接口是否存在wifi節(jié)點,若存在wifi節(jié)點,則判定所述wifi硬件設(shè)備已具備wifi連接功能。
進一步地,所述判斷模塊包括加載單元以及第一狀態(tài)同步單元;
所述加載單元用于所述第二進程中,在nativewifi服務(wù)程序啟動后,加載wifi內(nèi)核模塊,并啟動硬件適配層進程;
所述第一狀態(tài)同步單元用于將所述硬件適配層進程的啟動狀態(tài)同步至所述第一進程。
進一步地,所述聯(lián)網(wǎng)模塊包括獲取單元、連接單元以及第二狀態(tài)同步單元;
所述獲取單元用于在所述硬件適配層進程中獲取系統(tǒng)預存的路由器信息,所述路由器信息包括路由器的ssid、密碼信息以及加密方式;
所述連接單元用于根據(jù)獲取到的所述路由器的ssid、密碼信息以及加密方式,所述硬件適配層進程啟動后自動連接至相應(yīng)路由器;
所述第二狀態(tài)同步單元用于將所述第二進程中的路由器連接狀態(tài)同步至所述第一進程。
本發(fā)明提供的一種wifi連接方法及裝置,通過在wifi啟動過程中,開辟一新進程,創(chuàng)建一nativewifi服務(wù)程序。nativewifi服務(wù)程序和原有進程中的系統(tǒng)軟件初始化同步啟動,并且nativewifi服務(wù)程序?qū)⑿逻M程的狀態(tài)及連接情況同步至原有進程。新進程和原有進程同步進行,節(jié)省了wifi啟動時間,將終端設(shè)備從開機到成功連接wifi的時間提前,可實現(xiàn)在開機后桌面顯示之前就成功連接至路由器。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明較佳實施例提供的一種終端設(shè)備的示意性結(jié)構(gòu)框圖。
圖2為本發(fā)明較佳實施例提供的一種wifi連接方法的流程圖。
圖3為圖2中步驟s103的子步驟的流程圖。
圖4為圖2中步驟s107的子步驟的流程圖。
圖5為圖2中步驟s109的子步驟的流程圖。
圖6為本發(fā)明較佳實施例提供的一種wifi連接裝置的功能模塊框圖。
圖7為本發(fā)明較佳實施例提供的初始化模塊的功能模塊框圖。
圖8為本發(fā)明較佳實施例提供的判斷模塊的功能模塊框圖。
圖9為本發(fā)明較佳實施例提供的聯(lián)網(wǎng)模塊的功能模塊框圖。
圖標:100-終端設(shè)備;110-wifi連接裝置;111-指令接收模塊;112-初始化模塊;1121-系統(tǒng)服務(wù)程序啟動單元;1122-wifi服務(wù)項啟動單元;1123-wifi狀態(tài)機啟動單元;113-創(chuàng)建模塊;114-判斷模塊;1141-加載單元;1142-第一狀態(tài)同步單元;115-聯(lián)網(wǎng)模塊;1151-獲取單元;1152-連接單元;1153-第二狀態(tài)同步單元;120-存儲器;130-存儲控制器;140-處理器;150-外設(shè)接口;160-射頻模塊;170-音頻模塊;180-顯示模塊。
具體實施方式
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,除非另有明確的規(guī)定和限定,術(shù)語“設(shè)置”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
請參閱圖1,為本發(fā)明實施例提供的一種終端設(shè)備100的示意性結(jié)構(gòu)框圖。如圖1所示,所述終端設(shè)備100包括wifi連接裝置110、存儲器120、存儲控制器130,一個或多個(圖中僅示出一個)處理器140、外設(shè)接口150、射頻模塊160、音頻模塊170、顯示模塊180等。這些組件通過一條或多條通信總線/信號線相互通信。
存儲器120可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的wifi連接裝置110對應(yīng)的程序指令/模塊,處理器140通過運行存儲在存儲器120內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,如本發(fā)明實施例提供的wifi連接方法。
存儲器120可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。處理器140以及其他可能的組件對存儲器120的訪問可在存儲控制器130的控制下進行。
外設(shè)接口150連接處理器140以及存儲器120。在一些實施例中,外設(shè)接口150、處理器140以及存儲控制器130可以在單個芯片中實現(xiàn)。在其他一些實施例中,他們可以分別由獨立的芯片實現(xiàn)。
射頻模塊160用于接收以及發(fā)送電磁波,實現(xiàn)電磁波與電信號的相互轉(zhuǎn)換,從而與通信網(wǎng)絡(luò)或者其他設(shè)備進行通信。
音頻模塊170向用戶提供音頻接口,其可包括一個或多個麥克風、一個或者多個揚聲器以及音頻電路。
顯示模塊180在終端設(shè)備100與用戶之間提供一個顯示界面。具體地,顯示模塊180向用戶顯示視頻輸出,這些視頻輸出的內(nèi)容可包括文字、圖形、視頻及其任意組合。
可以理解,圖1所示的結(jié)構(gòu)僅為示意,終端設(shè)備100還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。圖1中所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。
于本發(fā)明實施例中,終端設(shè)備100可以是個人電腦(personalcomputer,pc)、平板電腦、智能手機、車載設(shè)備等。并且,終端設(shè)備100中安裝有客戶端,該客戶端為可以為瀏覽器、交友軟件、直播應(yīng)用程序、點播應(yīng)用程序或者其他,每個客戶端包括前端和后端。
請參閱圖2,是本發(fā)明實施例提供的一種應(yīng)用于上述終端設(shè)備100的wifi連接方法的流程圖。所應(yīng)說明的是,本發(fā)明提供的方法不以圖2及以下所述的具體順序為限制。下面將對圖2中示出的各步驟進行詳細說明。
步驟s101,接收開機觸發(fā)指令,啟動終端設(shè)備100。
在本實施例中,所述終端設(shè)備100為安裝有android系統(tǒng)的智能終端設(shè)備。所述終端設(shè)備100在接收到用戶通過點擊設(shè)備開機鍵或者是用戶通過遙控器控制設(shè)備開機的開機觸發(fā)指令后,即開始進行終端設(shè)備100啟動過程。
步驟s103,開辟第一進程,進行系統(tǒng)軟件初始化。
具體地,請參閱圖3,在本實施例中,步驟s103可以包括步驟s1031、步驟s1033以及步驟s1035三個子步驟。
步驟s1031,在所述第一進程中,內(nèi)核進程init啟動系統(tǒng)服務(wù)程序。
步驟s1033,在所述系統(tǒng)服務(wù)程序的觸發(fā)下,啟動wifi服務(wù)項。
步驟s1035,通過所述wifi服務(wù)項啟動wifi狀態(tài)機。
在設(shè)備開機之后,在系統(tǒng)第一進程中,內(nèi)核進程init負責啟動android層面的系統(tǒng)服務(wù)程序,即systemserver。在systemserver啟動之后,會創(chuàng)建一個connectivityserver對象,這個對象的構(gòu)造函數(shù)會創(chuàng)建一個wifi服務(wù)項,即wifiservice的實例。
在wifiservice啟動之后,wifiservice的工作主要是負責wifimonitor的啟動和關(guān)閉。而其中,wifimonitor的主要工作是阻塞監(jiān)聽并接收來自wpa_supplicant的消息,并將接收到的消息發(fā)送至wifi狀態(tài)機,即wifistatemachine??蛇x地,wifimonitor通過af_unix套接字和wpa_supplicant進行通信。在兩者通信的過程中有兩者連接方式:控制連接和監(jiān)聽連接。
步驟s105,開辟第二進程,創(chuàng)建nativewifi服務(wù)程序,內(nèi)核進程init啟動nativewifi服務(wù)程序。
在現(xiàn)有技術(shù)中,設(shè)備開機后wifi的連接流程是內(nèi)核進程init啟動android層面的系統(tǒng)服務(wù)systemserver。系統(tǒng)服務(wù)systemserver啟動wifi服務(wù)項wifiservice。wifiservice再去啟動狀態(tài)機wifistatemachine。然后在wifistatemachine中進行wifi硬件設(shè)備偵測、加載wifi內(nèi)核模塊以及啟動wpa_supplicant等。在本實施例中,將現(xiàn)有技術(shù)中連接流程的后期wifistatemachine所做的動作進行提前,將原來的串行處理過程改為并行處理過程,以節(jié)省開機后wifi連接時間。
本實施例中,在系統(tǒng)啟動時,在原有進程的基礎(chǔ)上開辟了一新進程,即第二進程。在該第二進程中,創(chuàng)建了一新的底層服務(wù)nativewifi服務(wù)程序。內(nèi)核進程init負責啟動新增加的底層服務(wù)nativewifi服務(wù)程序。其中,第一進程的systemserver和第二進程的nativewifi服務(wù)程序是同步啟動。在nativewifi服務(wù)程序中進行原來wifistatemachine所做的動作,如wifi硬件設(shè)備偵測、加載wifi內(nèi)核模塊以及啟動wpa_supplicant等。如此,由現(xiàn)有技術(shù)中的按照串行序列依次執(zhí)行系統(tǒng)啟動改為兩個進程同步進行,可節(jié)省系統(tǒng)啟動時間,縮短從開機到成功連接至路由器的時間。
步驟s107,進行wifi硬件設(shè)備狀態(tài)檢測,判斷所述wifi硬件設(shè)備是否已具備wifi連接功能,若所述wifi硬件設(shè)備已具備wifi連接功能,則進行wifi模塊使能進程。
在本實施例中,在進行wifi聯(lián)網(wǎng)之前,需要進行wifi硬件設(shè)備狀態(tài)檢測,以判別當前wifi硬件設(shè)備是否已準備就緒??蛇x地,本實施例中,通過在代碼中使用查看函數(shù)以查看wifi硬件設(shè)備的接口處是否存在wifi節(jié)點。如果在wifi硬件設(shè)備的接口處已存在wifi節(jié)點,則可以判定當前wifi硬件設(shè)備已準備就緒,已具備wifi連接功能。如果在wifi硬件設(shè)備的接口處沒有檢測到相應(yīng)的wifi節(jié)點,則需要等待。并且,間隔一段時間,再進行wifi節(jié)點檢測。直到在wifi硬件設(shè)備的接口處檢測到相應(yīng)wifi節(jié)點后,再進行后續(xù)過程。
具體地,請參閱圖4,在本實施例中,步驟s107可以包括步驟s1071以及步驟s1073兩個子步驟。
步驟s1071,所述第二進程中,在nativewifi服務(wù)程序啟動后,加載wifi內(nèi)核模塊,并啟動硬件適配層進程。
步驟s1073,將所述硬件適配層進程的啟動狀態(tài)同步至所述第一進程。
要想使用wifi模塊,必須首先使能wifi。在nativewifi服務(wù)程序啟動,并且檢測到wifi硬件設(shè)備已準備就緒之后。wirelesssetting會實例化一個wifienable對象。wifienable能夠?qū)崿F(xiàn)一個監(jiān)聽接口。當wifienable對象被初始化,且監(jiān)聽到相應(yīng)的觸發(fā)動作之后,會調(diào)用響應(yīng)函數(shù)onpreferencechange,這個響應(yīng)函數(shù)會調(diào)用的wifimanager的setwifienabled的函數(shù)。
而setwifienabled函數(shù)會調(diào)用setenablemessage的函數(shù),這個函數(shù)會給自己發(fā)送一個massage_enable_wifi的消息。這個消息會被handlermessage函數(shù)處理,并會調(diào)用setwifienableblocking函數(shù)。
在setwifienableblocking函數(shù)中主要做如下工作:加載wifi內(nèi)核模塊并啟動硬件適配層進程,即wpa_supplicant。
硬件適配層可定義很多字符串變量和適配層的接口實現(xiàn),是對wpa_supplicant程序通信的接口封裝。用來實現(xiàn)上層與wpa_supplicant的通信。wpa_supplicant主要是用來支持wep、wpa/wpa2以及wapi無線協(xié)議和加密認證的,并且可通過socke(不管是wpa_supplicant與上層還是wpa_supplicant與驅(qū)動之間都采用socket進行通訊)與驅(qū)動交互上報數(shù)據(jù)給用戶。而用戶可以通過socket發(fā)送命令給wpa_supplicant調(diào)用驅(qū)動來對wifi芯片進行操作。即wpa_supplicant就是wifi驅(qū)動與用戶的中轉(zhuǎn)站外加對協(xié)議和加密認證的支持。
步驟s109,根據(jù)系統(tǒng)中的路由器信息進行wifi聯(lián)網(wǎng),并將聯(lián)網(wǎng)狀態(tài)同步至所述第一進程。
具體地,請參閱圖5,在本實施例中,步驟s109可以包括步驟s1091、步驟s1093以及步驟s1095三個子步驟。
步驟s1091,在所述硬件適配層進程中獲取系統(tǒng)預存的路由器信息,所述路由器信息包括路由器的ssid、密碼信息以及加密方式;
步驟s1093,根據(jù)獲取到的所述路由器的ssid、密碼信息以及加密方式,所述硬件適配層進程啟動后自動連接至相應(yīng)路由器;
步驟s1095,將所述第二進程中的路由器連接狀態(tài)同步至所述第一進程。
在本實施例中,在wifimonitor中創(chuàng)建與wpa_supplicant通信的socket通道并創(chuàng)建有一個線程接收底層事件并分發(fā)處理。在這里會創(chuàng)建兩個socket通道與wpa_supplicant進行通信,一個用于下發(fā)指令,另一個用于接收事件。成功后wifimonitor會向wifistatemachine發(fā)送一個代表socket通信建立成功的消息sup_connection_event。收到這個消息之后就表示wifi已經(jīng)啟動成功了。這時會切換到supplicantstartingstate。
進入supplicantstartingstate之后,首先調(diào)用函數(shù)wificonfigstore.loadandenableallnetworks。并獲取保存在系統(tǒng)中的路由器信息。其中,所述路由器信息包括路由器的ssid、路由器的密碼信息以及加密方式等。然后會做一些其他的初始化工作,并切換到driverstartedstate狀態(tài)。
supplicantstartedstate中的enter函數(shù)設(shè)置了wifi掃描間隔,driverstartedstate的enter函數(shù)主要進行一些相關(guān)的設(shè)置工作,并根據(jù)配置啟動p2p。最后在enter函數(shù)中會將狀態(tài)切換到disconnectedstate。此時消息隊列中的兩條消息會被處理:cmd_set_operational_mode以及cmd_start_driver。
其中,cmd_set_operational_mode消息在disconnectedstate中被處理,將moperationalmode設(shè)置為connect_mode。而cmd_start_driver消息則在driverstartedstate中被處理。最后切換至disconnectedstate,被關(guān)注enter函數(shù)。
在enter函數(shù)中,會進行查看動作,在處理scan_results_event消息時,就會進入autojoin自動加載流程,并連接至相應(yīng)的路由器。并且,將第二進程中路由器的連接狀態(tài)同步至第一進程。
本實施例提供wifi連接方法通過在原有進程的基礎(chǔ)上新建一進程,在新進程中單獨來處理原有進程的后期才會進行的處理動作,如硬件偵測、驅(qū)動加載、supplicant啟動以及路由器連接等。并且,新進程啟動的時間與原有進程啟動時間為同步啟動,這樣可以節(jié)約成功連接路由器的時間,并且在新進程的nativewifi服務(wù)程序中沒有狀態(tài)機邏輯,執(zhí)行效率也比原有進程中的wifistatemachine更高,也可以節(jié)省系統(tǒng)初始化時間。
通過試驗驗證,andriod實測的wifi連接時間較原有的連接方式而言,可以提前10秒以上,從而達到在設(shè)備桌面顯示之前,已成功連接wifi的效果。
請參閱圖6,是本發(fā)明實施例提供的wifi連接裝置110的功能模塊框圖。所述wifi連接裝置110包括指令接收模塊111、初始化模塊112、創(chuàng)建模塊113、判斷模塊114以及聯(lián)網(wǎng)模塊115。
所述指令接收模塊111用于接收開機觸發(fā)指令,啟動終端設(shè)備100。具體地,該指令接收模塊111可用于執(zhí)行圖2中所示的步驟s101,具體的操作方法可參考步驟s101的詳細描述。
所述初始化模塊112用于開辟第一進程,進行系統(tǒng)軟件初始化。具體地,該初始化模塊112可用于執(zhí)行圖2中所示的步驟s103,具體的操作方法可參考步驟s103的詳細描述。
所述創(chuàng)建模塊113用于開辟第二進程,創(chuàng)建nativewifi服務(wù)程序,內(nèi)核進程init啟動nativewifi服務(wù)程序。具體地,該創(chuàng)建模塊113可用于執(zhí)行圖2中所示的步驟s105,具體的操作方法可參考步驟s105的詳細描述。
所述判斷模塊114用于進行wifi硬件設(shè)備狀態(tài)檢測,判斷所述wifi硬件設(shè)備是否已具備wifi連接功能,若所述wifi硬件設(shè)備已具備wifi連接功能,則進行wifi模塊使能進程。具體地,該判斷模塊114可用于執(zhí)行圖2中所示的步驟s107,具體的操作方法可參考步驟s107的詳細描述。
所述聯(lián)網(wǎng)模塊115用于根據(jù)系統(tǒng)中的路由器信息進行wifi聯(lián)網(wǎng),并將聯(lián)網(wǎng)狀態(tài)同步至所述第一進程。具體地,該聯(lián)網(wǎng)模塊115可用于執(zhí)行圖2中所示的步驟s109,具體的操作方法可參考步驟s109的詳細描述。
可選地,請參閱圖7,所述初始化模塊112可以包括系統(tǒng)服務(wù)程序啟動單元1121、wifi服務(wù)項啟動單元1122以及wifi狀態(tài)機啟動單元1123。
所述系統(tǒng)服務(wù)程序啟動單元1121用于在所述第一進程中,內(nèi)核進程init啟動系統(tǒng)服務(wù)程序。具體地,該系統(tǒng)服務(wù)程序啟動單元1121可用于執(zhí)行圖3中所示的步驟s1031,具體的操作方法可參考步驟s1031的詳細描述。
所述wifi服務(wù)項啟動單元1122用于在所述系統(tǒng)服務(wù)程序的觸發(fā)下,啟動wifi服務(wù)項。具體地,該wifi服務(wù)項啟動單元1122可用于執(zhí)行圖3中所示的步驟s1033,具體的操作方法可參考步驟s1033的詳細描述。
所述wifi狀態(tài)機啟動單元1123用于通過所述wifi服務(wù)項啟動wifi狀態(tài)機。具體地,該wifi狀態(tài)機啟動單元1123可用于執(zhí)行圖3中所示的步驟s1035,具體的操作方法可參考步驟s1035的詳細描述。
可選地,所述判斷模塊114還用于通過在代碼中使用查看函數(shù)以查看所述wifi硬件設(shè)備的接口是否存在wifi節(jié)點,若存在wifi節(jié)點,則判定所述wifi硬件設(shè)備已具備wifi連接功能。
可選地,請參閱圖8,所述判斷模塊114包括加載單元1141以及第一狀態(tài)同步單元1142。
所述加載單元1141用于所述第二進程中,在nativewifi服務(wù)程序啟動后,加載wifi內(nèi)核模塊,并啟動硬件適配層進程。具體地,該加載單元1141可用于執(zhí)行圖4中所示的步驟s1071,具體的操作方法可參考步驟s1071的詳細描述。
所述第一狀態(tài)同步單元1142用于將所述硬件適配層進程的啟動狀態(tài)同步至所述第一進程。具體地,該第一狀態(tài)同步單元1142可用于執(zhí)行圖4中所示的步驟s1073,具體的操作方法可參考步驟s1073的詳細描述。
可選地,請參閱圖9,所述聯(lián)網(wǎng)模塊115包括獲取單元1151、連接單元1152以及第二狀態(tài)同步單元1153。
所述獲取單元1151用于在所述硬件適配層進程中獲取系統(tǒng)預存的路由器信息,所述路由器信息包括路由器的ssid、密碼信息以及加密方式。具體地,該獲取單元1151可用于執(zhí)行圖5中所示的步驟s1091,具體的操作方法可參考步驟s1091的詳細描述。
所述連接單元1152用于根據(jù)獲取到的所述路由器的ssid、密碼信息以及加密方式,所述硬件適配層進程啟動后自動連接至相應(yīng)路由器。具體地,該連接單元1152可用于執(zhí)行圖5中所示的步驟s1093,具體的操作方法可參考步驟s1093的詳細描述。
所述第二狀態(tài)同步單元1153用于將所述第二進程中的路由器連接狀態(tài)同步至所述第一進程。具體地,該第二狀態(tài)同步單元1153可用于執(zhí)行圖5中所示的步驟s1095,具體的操作方法可參考步驟s1095的詳細描述。
綜上所述,本發(fā)明提供的一種wifi連接方法及裝置,通過在wifi啟動過程中,開辟一新進程,創(chuàng)建一nativewifi服務(wù)程序。nativewifi服務(wù)程序和原有進程中的系統(tǒng)軟件初始化同步啟動,并且nativewifi服務(wù)程序?qū)⑿逻M程的狀態(tài)及連接情況同步至原有進程。新進程和原有進程同步進行,節(jié)省了wifi啟動時間,將終端設(shè)備100從開機到成功連接至wifi的時間提前,可實現(xiàn)在開機后桌面顯示之前就成功連接至路由器。
在本申請所提供的實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的實施例的裝置、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)方式中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。