本發(fā)明涉及智能電視網(wǎng)絡(luò)設(shè)置技術(shù),具體涉及一種實現(xiàn)智能電視網(wǎng)絡(luò)切換同步UI操作的方法。
背景技術(shù):
現(xiàn)代智能電視連接互聯(lián)網(wǎng)功能已經(jīng)是一個重要的功能組成部分。當智能電視上有線網(wǎng)絡(luò)和無線網(wǎng)絡(luò)兩種上網(wǎng)方式都提供時,需要用戶在網(wǎng)絡(luò)設(shè)置的時候選擇切換有線或無線方式的網(wǎng)絡(luò)進行連網(wǎng)。切換的過程實際上是底層使能有線網(wǎng)卡、關(guān)閉無線網(wǎng)卡,或者使能無線網(wǎng)卡、關(guān)閉有線網(wǎng)卡的過程。使能或者關(guān)閉wifi無線網(wǎng)卡需要一定的響應(yīng)時間,如果網(wǎng)卡的一次操作響應(yīng)還沒有完成,立即又去操作使能或者關(guān)閉,就有可能導(dǎo)致系統(tǒng)卡住死機。
現(xiàn)有技術(shù)中常規(guī)的做法是在切換的時候阻塞等待響應(yīng),即一次操作正在切換過程中用戶不能再次操作切換,不能連續(xù)響應(yīng)用戶的UI操作。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:提供了一種實現(xiàn)智能電視網(wǎng)絡(luò)切換同步UI操作的方法,解決傳統(tǒng)技術(shù)中切換網(wǎng)絡(luò)時采用阻塞等待響應(yīng)的方式存在的問題。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
實現(xiàn)智能電視網(wǎng)絡(luò)切換同步UI操作的方法,包括以下步驟:
A、構(gòu)建狀態(tài)機,并通過狀態(tài)機接收并保存用戶進行網(wǎng)絡(luò)切換時的輸入;
B、系統(tǒng)改變UI界面,顯示用戶正在選擇的網(wǎng)絡(luò)類型;
C、系統(tǒng)判斷當前底層網(wǎng)卡是否對應(yīng)用戶當前選擇的網(wǎng)絡(luò)類型,若不是,則進入網(wǎng)絡(luò)切換流程:啟動狀態(tài)機的網(wǎng)絡(luò)狀態(tài)事件監(jiān)聽器來監(jiān)聽網(wǎng)絡(luò)狀態(tài),當監(jiān)聽到網(wǎng)絡(luò)狀態(tài)改變事件后,設(shè)置狀態(tài)機對應(yīng)的一種狀態(tài);
D、系統(tǒng)應(yīng)用層程序通過定時器輪詢狀態(tài)機的狀態(tài),一直查詢到狀態(tài)機改變?yōu)橥瓿墒鼓?完成關(guān)閉狀態(tài)為止,則系統(tǒng)調(diào)用下層網(wǎng)絡(luò)接口函數(shù)切換網(wǎng)絡(luò)到當前狀態(tài)機保存的用戶所選擇的網(wǎng)絡(luò)類型;
E、在狀態(tài)機狀態(tài)為完成使能/完成關(guān)閉狀態(tài)時,判斷當前網(wǎng)絡(luò)是否和用戶最新輸入的網(wǎng)絡(luò)類型相同,如果相同,則改變UI顯示為當前使能完成的網(wǎng)絡(luò)類型并關(guān)閉定時器,否則,繼續(xù)執(zhí)行通過定時輪詢狀態(tài)機狀態(tài)來切換網(wǎng)絡(luò)類型的操作。
作為進一步優(yōu)化,所述狀態(tài)機是一個用int型變量“state”來存儲四種狀態(tài)的類,所述四種狀態(tài)包括:完成使能狀態(tài)、正在設(shè)置使能狀態(tài)、完成關(guān)閉狀態(tài)、正在設(shè)置關(guān)閉狀態(tài)。
作為進一步優(yōu)化,步驟A中,通過狀態(tài)機的狀態(tài)位來保存用戶的輸入,當用戶在有線和無線間選擇切換時,狀態(tài)機內(nèi)部的狀態(tài)位隨用戶輸入改變。
作為進一步優(yōu)化,步驟C中,狀態(tài)機的網(wǎng)絡(luò)狀態(tài)事件監(jiān)聽器依據(jù)linux網(wǎng)絡(luò)協(xié)議棧,讀取底層網(wǎng)卡驅(qū)動的狀態(tài),從而監(jiān)聽網(wǎng)絡(luò)狀態(tài)。
作為進一步優(yōu)化,所述網(wǎng)絡(luò)狀態(tài)事件監(jiān)聽器是狀態(tài)機類的一個用于接收網(wǎng)絡(luò)事件的成員函數(shù),在構(gòu)建時狀態(tài)機向操作系統(tǒng)注冊,當?shù)讓泳W(wǎng)卡驅(qū)動狀態(tài)改變并向上層發(fā)送事件后,該函數(shù)會被操作系統(tǒng)自動調(diào)用。
本發(fā)明的有益效果是:相對于通常的阻塞等待底層網(wǎng)絡(luò)狀態(tài)切換方法,本發(fā)明保證了底層網(wǎng)卡能夠正常使能或關(guān)閉,同時用戶UI操作能夠流暢不阻塞,使智能電視使用者獲得更好的用戶體驗,硬件適應(yīng)能力強,可實施性強。
附圖說明
圖1為狀態(tài)機的狀態(tài)轉(zhuǎn)換示意圖;
圖2為實現(xiàn)智能電視網(wǎng)絡(luò)切換同步UI操作的方法流程圖。
具體實施方式
本發(fā)明旨在提供一種實現(xiàn)智能電視網(wǎng)絡(luò)切換同步UI操作的方法,解決傳統(tǒng)技術(shù)中切換網(wǎng)絡(luò)時采用阻塞等待響應(yīng)的方式存在的問題。在本發(fā)明中,通過構(gòu)建帶狀態(tài)機依據(jù)linux網(wǎng)絡(luò)協(xié)議棧,讀取底層網(wǎng)卡驅(qū)動的狀態(tài)。網(wǎng)卡驅(qū)動處于linux網(wǎng)絡(luò)協(xié)議棧的鏈路層。用戶通過UI操作,調(diào)用linux網(wǎng)絡(luò)協(xié)議棧應(yīng)用層的接口,讀取鏈路層的網(wǎng)絡(luò)驅(qū)動狀態(tài),然后狀態(tài)機對用戶的操作做出正確的響應(yīng)以及顯示。該方法保證了底層網(wǎng)卡能夠正常使能或關(guān)閉,同時用戶UI操作能夠流暢不阻塞,使智能電視使用者獲得更好的用戶體驗。
在具體實現(xiàn)上,本發(fā)明中構(gòu)建的狀態(tài)機是一個用int型變量“state”來存儲四種狀態(tài)(enabled完成使能、enabling正在設(shè)置使能、disabled完成關(guān)閉、disabling正在設(shè)置關(guān)閉)的類,在系統(tǒng)初始化時構(gòu)建,初始state狀態(tài)為enabled。狀態(tài)機四種狀態(tài)的切換如圖1所示,其決定于底層網(wǎng)卡驅(qū)動狀態(tài)。當?shù)讓域?qū)動狀態(tài)改變時,通過一個狀態(tài)改變的事件發(fā)送給上層。狀態(tài)機通過事件監(jiān)聽器,監(jiān)聽網(wǎng)絡(luò)狀態(tài)。當監(jiān)聽到網(wǎng)絡(luò)狀態(tài)改變事件后,設(shè)置狀態(tài)機狀態(tài)為四種狀態(tài)中相應(yīng)的一種。事件監(jiān)聽器是狀態(tài)機類的一個用于接收網(wǎng)絡(luò)事件的成員函數(shù),在狀態(tài)機構(gòu)建時向操作系統(tǒng)注冊,當?shù)讓訝顟B(tài)改變并發(fā)送事件后,該函數(shù)會被操作系統(tǒng)自動調(diào)用。
系統(tǒng)根據(jù)狀態(tài)機的不同狀態(tài)做出相應(yīng)響應(yīng):1,如果狀態(tài)機處于正在設(shè)置使能/正在設(shè)置關(guān)閉狀態(tài),應(yīng)用程序啟動定時器---定時器是向系統(tǒng)注冊的一個timer類,注冊這個timer的時候指定計時時間到后執(zhí)行的函數(shù)。定時器循環(huán)計時,每次計時時間到后即執(zhí)行指定的函數(shù)。在timer的執(zhí)行函數(shù)中輪詢狀態(tài)機狀態(tài),一直輪詢到狀態(tài)機改變?yōu)橥瓿墒鼓?完成關(guān)閉狀態(tài)為止,系統(tǒng)調(diào)用下層網(wǎng)絡(luò)接口函數(shù),切換網(wǎng)絡(luò)到當前狀態(tài)機保存的用戶選擇網(wǎng)絡(luò)類型;2,如果狀態(tài)機處于完成設(shè)置使能/關(guān)閉狀態(tài),則立即開始切換網(wǎng)絡(luò)到用戶選擇的網(wǎng)絡(luò)類型。網(wǎng)絡(luò)切換調(diào)用linux網(wǎng)絡(luò)協(xié)議棧應(yīng)用層的接口,作用于鏈路層中的網(wǎng)絡(luò)驅(qū)動。
如圖2所示,本發(fā)明中的實現(xiàn)智能電視網(wǎng)絡(luò)切換同步UI操作的方法,包括以下實現(xiàn)步驟:
(1)通過狀態(tài)機接收并保存用戶進行網(wǎng)絡(luò)切換時的輸入,用戶在設(shè)置網(wǎng)絡(luò)類型時,將用戶輸入的狀態(tài)保存在一個預(yù)先開辟的static靜態(tài)變量“NetType”中。然后系統(tǒng)改變UI,顯示用戶正在選擇的網(wǎng)絡(luò)類型(有線/無線)。
(2)系統(tǒng)判斷當前底層網(wǎng)卡是否對應(yīng)用戶當前選擇的網(wǎng)絡(luò)類型,若不是,則進入網(wǎng)絡(luò)切換流程:啟動狀態(tài)機的網(wǎng)絡(luò)狀態(tài)事件監(jiān)聽器來監(jiān)聽網(wǎng)絡(luò)狀態(tài),當監(jiān)聽到網(wǎng)絡(luò)狀態(tài)改變事件后,設(shè)置狀態(tài)機對應(yīng)的一種狀態(tài);
(3)系統(tǒng)應(yīng)用層程序通過定時器輪詢狀態(tài)機的狀態(tài),一直查詢到狀態(tài)機改變?yōu)橥瓿墒鼓?完成關(guān)閉狀態(tài)為止,則系統(tǒng)調(diào)用下層網(wǎng)絡(luò)接口函數(shù)切換網(wǎng)絡(luò)到當前狀態(tài)機保存的用戶所選擇的網(wǎng)絡(luò)類型;
(4)當狀態(tài)機狀態(tài)為完成設(shè)置使能/關(guān)閉狀態(tài)時,判斷當前網(wǎng)絡(luò)是否和保存的用戶輸入的網(wǎng)絡(luò)類型選擇相同。如果相同,則改變UI顯示為當前使能完成的網(wǎng)絡(luò)類型(有線/無線),并關(guān)閉定時器。否則回到步驟3繼續(xù)執(zhí)行通過狀態(tài)機切換網(wǎng)絡(luò)類型的操作。
實施例1:
以用戶從有線網(wǎng)絡(luò)切換到WIFI無線網(wǎng)絡(luò)為例,其包括以下實施步驟:
(1)接收到用戶輸入選擇網(wǎng)絡(luò)為WIFI,保存NetType為WIFI。
(2)改變UI顯示當前網(wǎng)絡(luò)為WIFI,提示正在使能WIFI。
(3)判斷當前狀態(tài)為wifi_disabled,開始切換網(wǎng)絡(luò)到wifi。并啟動定時器輪詢當前網(wǎng)絡(luò)狀態(tài)。
(4)當查詢到當前網(wǎng)絡(luò)狀態(tài)為wifi_enabled,UI顯示W(wǎng)IFI使能完畢,關(guān)閉定時器。
實施例2:
假如用戶從有線網(wǎng)絡(luò)切換到WIFI無線網(wǎng)絡(luò),底層這一次切換還沒完成時,用戶繼續(xù)操作切換回有線網(wǎng)絡(luò),則其包括以下實施步驟:
(1)接收到用戶輸入選擇網(wǎng)絡(luò)為WIFI,保存網(wǎng)絡(luò)狀態(tài)WIFI。
(2)改變UI顯示當前網(wǎng)絡(luò)為WIFI,提示正在使能WIFI。
(3)判斷當前狀態(tài)為wifi_disabled,開始切換網(wǎng)絡(luò)到wifi。并啟動定時器輪詢當前網(wǎng)絡(luò)狀態(tài)。
(4)用戶輸入切換到有線網(wǎng)絡(luò),保存網(wǎng)絡(luò)狀態(tài)為有線,改變UI顯示當前網(wǎng)絡(luò)為有線,提示正在使能有線網(wǎng)絡(luò)。
(5)輪詢網(wǎng)絡(luò)狀態(tài),如果狀態(tài)為wifi_enabling,繼續(xù)啟動定時器輪詢等待網(wǎng)絡(luò)狀態(tài)轉(zhuǎn)換。當狀態(tài)轉(zhuǎn)換為wifi_enabled時,比較當前網(wǎng)絡(luò)狀態(tài)和用戶輸入保存的狀態(tài),比較發(fā)現(xiàn)當前網(wǎng)絡(luò)和用戶輸入選擇的網(wǎng)絡(luò)不相同。
(6)啟動切換到有線網(wǎng)絡(luò),并啟動定時器輪詢當前網(wǎng)絡(luò)狀態(tài)。
(7)當查詢到當前網(wǎng)絡(luò)狀態(tài)為wifi_disabled,UI顯示有線網(wǎng)絡(luò)使能完畢,關(guān)閉定時器。