本申請實施例涉及移動終端技術(shù)領(lǐng)域,尤其涉及移動終端的網(wǎng)絡(luò)流量控制方法及裝置。
背景技術(shù):
移動終端已成為人們隨身的必備物品,它幫助人們隨時隨地與他人溝通。并且,隨著智能的移動終端的發(fā)展,其不再只是人們的通信工具,而是成為了人們工作、娛樂以及社交的中樞。
為了實現(xiàn)各種各樣的功能,用戶通常會在移動終端上加載各種應(yīng)用程序,而這些應(yīng)用程序的運行往往需要移動終端連接互聯(lián)網(wǎng),從而下載網(wǎng)絡(luò)數(shù)據(jù)。但是,這些應(yīng)用程序在運行過程中會耗費很多網(wǎng)絡(luò)流量。特別是一些在后臺運行的應(yīng)用程序,在用戶毫不知情、毫無感知的情況下就可能耗費大量的網(wǎng)絡(luò)流量。
因此,如何在不影響用戶正常使用移動終端上的各種應(yīng)用程序的情況下,對網(wǎng)絡(luò)流量進(jìn)行控制,以盡量減少網(wǎng)絡(luò)流量的消耗,成為現(xiàn)有技術(shù)中亟需解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請實施例提供一種移動終端的網(wǎng)絡(luò)流量控制方法及裝置,其根據(jù)監(jiān)聽移動終端的屏幕狀態(tài)變化和記錄的屏幕狀態(tài)變化之前的狀態(tài),對移動終端的用戶流量進(jìn)行管理,避免了移動終端處于非激活狀態(tài)下的流量浪費。
本申請實施例提供一種移動終端的網(wǎng)絡(luò)流量控制方法,包括:
監(jiān)聽所述移動終端的屏幕狀態(tài)的變化;
如果所述移動終端的屏幕變成非激活狀態(tài),獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài);
如果所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間;
如果所述移動終端的屏幕處于非激活狀態(tài)的時間大于或等于預(yù)設(shè)的時間閾值,斷開所述移動終端的數(shù)據(jù)鏈接。
在本申請的一具體實施例中,所述方法包括:
在獲取到所述移動終端的數(shù)據(jù)鏈接的狀態(tài)之后,記錄所述數(shù)據(jù)鏈接狀態(tài)。
在本申請的一具體實施例中,所述方法包括:
如果所述移動終端的屏幕變成激活狀態(tài),獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài);
如果所述移動終端的數(shù)據(jù)鏈接處于斷開狀態(tài),查詢所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接的狀態(tài);
如果所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),重新連通所述移動終端的數(shù)據(jù)鏈接。
在本申請的一具體實施例中,所述方法包括:
監(jiān)聽所述移動終端的數(shù)據(jù)鏈接的狀態(tài)變化;
當(dāng)所述數(shù)據(jù)鏈接的狀態(tài)發(fā)生變化時,將記錄的所述數(shù)據(jù)鏈接狀態(tài)修改為所述數(shù)據(jù)鏈接的當(dāng)前狀態(tài)。
在本申請的一具體實施例中,所述斷開所述移動終端的數(shù)據(jù)鏈接為:
通過系統(tǒng)接口斷開所述移動終端的數(shù)據(jù)鏈接。
在本申請的一具體實施例中,監(jiān)聽所述移動終端的屏幕的狀態(tài),包括:
接收所述移動終端的系統(tǒng)發(fā)送的屏幕狀態(tài)改變消息,所述屏幕狀態(tài)改變消息中指示了屏幕狀態(tài)的變化信息;
解析所述屏幕狀態(tài)改變消息,獲得當(dāng)前屏幕狀態(tài)的變化。
在本申請的一具體實施例中,監(jiān)聽所述移動終端的數(shù)據(jù)鏈接的狀態(tài),包括:
接收所述移動終端的系統(tǒng)發(fā)送的數(shù)據(jù)鏈接狀態(tài)改變消息,所述數(shù)據(jù)鏈接狀態(tài)改變消息中指示了數(shù)據(jù)鏈接狀態(tài)的變化信息;
解析所述數(shù)據(jù)鏈接狀態(tài)改變消息,獲得當(dāng)前數(shù)據(jù)鏈接狀態(tài)的變化。
對應(yīng)上述方法,本申請?zhí)峁┮环N移動終端的網(wǎng)絡(luò)流量控制裝置,包括:
屏幕狀態(tài)監(jiān)聽模塊,用于監(jiān)聽所述移動終端的屏幕狀態(tài)的變化;
數(shù)據(jù)鏈接狀態(tài)獲取模塊,用于當(dāng)所述移動終端的屏幕變成非激活狀態(tài)時,獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài);
時間判決模塊,用于當(dāng)所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài)時,監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間;
數(shù)據(jù)鏈接操作模塊,用于當(dāng)所述移動終端的屏幕處于非激活狀態(tài)的時間大于或等于預(yù)設(shè)的時間閾值時,斷開所述移動終端的數(shù)據(jù)鏈接。
在本申請的一具體實施例中,所述裝置包括:
數(shù)據(jù)鏈接狀態(tài)記錄模塊,用于在獲取到所述移動終端的數(shù)據(jù)鏈接的狀態(tài)之后,記錄所述數(shù)據(jù)鏈接狀態(tài)。
在本申請的一具體實施例中,所述裝置包括:
數(shù)據(jù)鏈接查詢模塊,用于當(dāng)所述移動終端的屏幕變成激活狀態(tài)并且所述移動終端的數(shù)據(jù)鏈接處于斷開狀態(tài)時,查詢獲取所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接的狀態(tài);
如果所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),數(shù)據(jù)鏈接操作模塊重新連通所述移動終端的數(shù)據(jù)鏈接。
在本申請的一具體實施例中,所述裝置包括:
數(shù)據(jù)鏈接狀態(tài)監(jiān)聽模塊,用于監(jiān)聽所述移動終端的數(shù)據(jù)鏈接的狀態(tài)變化;
當(dāng)所述數(shù)據(jù)鏈接的狀態(tài)發(fā)生變化時,將記錄的所述數(shù)據(jù)鏈接狀態(tài)修改為所述數(shù)據(jù)鏈接的當(dāng)前狀態(tài)。。
在本申請的一具體實施例中,包括:通過系統(tǒng)接口斷開所述移動終端的數(shù)據(jù)鏈接。
在本申請的一具體實施例中,包括:屏幕狀態(tài)監(jiān)聽模塊接收所述移動終端的系統(tǒng)發(fā)送的屏幕狀態(tài)改變消息,所述屏幕狀態(tài)改變消息中指示了屏幕狀態(tài)的變化信息;并解析所述屏幕狀態(tài)改變消息,獲得當(dāng)前屏幕狀態(tài)的變化。
在本申請的一具體實施例中,包括:數(shù)據(jù)鏈接狀態(tài)監(jiān)聽模塊接收所述移動終端的系統(tǒng)發(fā)送的數(shù)據(jù)鏈接狀態(tài)改變消息,所述數(shù)據(jù)鏈接狀態(tài)改變消息中指示了數(shù)據(jù)鏈接狀態(tài)的變化信息;并解析所述數(shù)據(jù)鏈接狀態(tài)改變消息,獲得當(dāng)前數(shù)據(jù)鏈接狀態(tài)的變化。
由以上技術(shù)方案可見,本申請實施例監(jiān)聽所述移動終端的屏幕狀態(tài)的變化,如果所述移動終端的屏幕變成非激活狀態(tài),獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài),如果所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間,如果所述移動終端的屏幕處于非激活狀態(tài)的時間大于或等于預(yù)設(shè)的時間閾值,斷開所述移動終端的數(shù)據(jù)鏈接。本申請實施例監(jiān)聽到移動終端的屏幕變成非激活狀態(tài)時,斷開所述移動終端的數(shù)據(jù)網(wǎng)絡(luò)鏈接,避免了移動終端的屏幕處于非激活狀態(tài)下的流量浪費,減少用戶的損失。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請實施例中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請實施例應(yīng)用的移動終端的結(jié)構(gòu)示意圖;
圖2是本申請一種移動終端的流量控制方法一實施例的流程圖;
圖3是本申請一種移動終端的流量控制方法另一實施例的流程圖;
圖4是本申請一種移動終端的流量控制方法另一實施例的流程圖;
圖5是本申請一種移動終端的流量控制方法另一實施例的流程圖;
圖6是本申請一種移動終端的流量控制方法另一實施例的流程圖;
圖7是本申請一種移動終端的流量控制方法另一實施例的流程圖;
圖8是本申請一種移動終端的流量控制裝置一實施例的流程圖;
圖9是本申請一種移動終端的流量控制裝置另一實施例的流程圖;
圖10是本申請一種移動終端的流量控制裝置另一實施例的流程圖;
圖11是本申請一種移動終端的流量控制裝置另一實施例的流程圖;
圖12是本申請一種移動終端的流量控制裝置另一實施例的流程圖;
圖13是本申請一種移動終端的流量控制裝置另一實施例的流程圖;
圖14是本申請一種移動終端的流量控制方法一實施例的流程圖;
圖15是本申請一種移動終端的流量控制裝置一實施例的流程圖;
圖16是本申請一種移動終端的流量控制方法的電子設(shè)備的硬件結(jié)構(gòu)示意圖。
具體實施方式
本申請的發(fā)明人在研究中發(fā)現(xiàn),在很多情況下,用戶可能長時間對處于開機狀態(tài)下的移動終端不進(jìn)行任何操作。例如,用戶在忙工作的時候,或者,用戶在夜間休息的時候。此時,有些應(yīng)用程序很可能正在后臺運行,而實際上,用戶此時很可能并不關(guān)心后臺運行的應(yīng)用程序,應(yīng)用程序因運行而消耗的網(wǎng)絡(luò)流量是對于用戶來說是非常浪費的。因此,如果在此時斷開數(shù)據(jù)鏈接,從而終斷應(yīng)用程序的運行,就可以減少網(wǎng)絡(luò)流量的消耗,減少用戶的經(jīng)濟(jì)損失。
本申請實施例監(jiān)聽所述移動終端的屏幕狀態(tài)的變化,如果所述移動終端的屏幕變成非激活狀態(tài),獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài),如果所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間,如果所述移動終端的屏幕處于非激活狀態(tài)的時間大于或等于預(yù)設(shè)的時間閾值,斷開所述移動終端的數(shù)據(jù)鏈接。本申請實施例監(jiān)聽到移動終端的屏幕變成非激活狀態(tài)時,斷開所述移動終端的數(shù)據(jù)網(wǎng)絡(luò)鏈接,避免了移動終端的屏幕處于非激活狀態(tài)下的流量浪費,減少用戶的損失。
當(dāng)然,實施本申請實施例的任一技術(shù)方案必不一定需要同時達(dá)到以上的所有優(yōu)點。
為了使本領(lǐng)域的人員更好地理解本申請實施例中的技術(shù)方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅是本申請實施例一部分實施例,而不是全部的實施例?;诒旧暾垖嵤├械膶嵤├?,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本申請實施例保護(hù)的范圍。
下面結(jié)合本申請實施例附圖進(jìn)一步說明本申請實施例具體實現(xiàn)。
本申請實施例提供一種移動終端的流量控制方法,所述移動終端可以為智能手機、PAD等。
參見圖1,所述移動終端1通常包括:主控芯片11、存儲器120、輸入輸出裝置13以及其他硬件14。所述主控芯片11控制各功能模塊,存儲器120存儲各應(yīng)用程序和數(shù)據(jù)。
參見圖2,該方法的執(zhí)行主體為移動終端,所述方法包括:
S201、監(jiān)聽所述移動終端的屏幕狀態(tài)的變化。移動終端的屏幕狀態(tài)的變化包括由激活狀態(tài)變成未激活狀態(tài),即屏幕熄滅。
當(dāng)移動終端如果長時間未接收到用戶的輸入指令時,移動終端屏幕會由激活狀態(tài)變成未激活狀態(tài),即屏幕熄滅。例如,用戶會長時間不使用移動終端,移動終端長時間未接收到用戶的輸入指令,所述移動終端的屏幕處于非激活狀態(tài)。當(dāng)所述移動終端接收物理鍵的操作指令時,移動終端屏幕會發(fā)生屏幕熄滅,即移動終端由激活狀態(tài)變成非激活狀態(tài)。例如,通過按移動終端的屏幕電源鍵,將移動設(shè)備設(shè)置為滅屏狀態(tài)。
本申請?zhí)峁┮环N監(jiān)聽所述移動終端的屏幕狀態(tài)的變化的方法:注冊移動終端的系統(tǒng)事件,當(dāng)屏幕狀態(tài)發(fā)生變化時,移動終端的系統(tǒng)會將消息發(fā)送給注冊過該事件的應(yīng)用程序,應(yīng)用程序接收到消息,可解析消息的具體內(nèi)容,獲得屏幕的狀態(tài)變化。
以Android系統(tǒng)為例,使用PowerManager獲取注冊事件,將應(yīng)用程序的滅屏的操作注冊到系統(tǒng)事件中,即在應(yīng)用程序中添加ActionScreenOff的函數(shù),將該函數(shù)注冊到系統(tǒng)事件中;當(dāng)外部觸發(fā)滅屏的事件時,系統(tǒng)調(diào)用注冊過的事件ActionScreenOff,并將狀態(tài)的改變結(jié)果傳遞給應(yīng)用程序,從而監(jiān)聽所述移動終端的屏幕狀態(tài)的變化。
S202、如果所述移動終端的屏幕變成非激活狀態(tài),獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
如果所述移動終端的屏幕變成非激活狀態(tài)時,則認(rèn)為所述移動終端進(jìn)入滅屏狀態(tài),需要對移動終端的網(wǎng)絡(luò)流量進(jìn)行控制,此時獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài),以根據(jù)當(dāng)前數(shù)據(jù)鏈接的狀態(tài)進(jìn)一步處理。
以Android系統(tǒng)為例,使用getActiveNetworkInfo函數(shù),獲取當(dāng)前移動終端的網(wǎng)絡(luò)狀態(tài)。如果網(wǎng)絡(luò)為連通狀態(tài),則獲取網(wǎng)絡(luò)類型。移動終端的網(wǎng)絡(luò)類型包括藍(lán)牙數(shù)據(jù)連接、以太網(wǎng)數(shù)據(jù)連接、移動數(shù)據(jù)連接、Wifi連接。由于用戶對移動數(shù)據(jù)鏈接的網(wǎng)絡(luò)流量關(guān)注比較大,因此在本申請實施例中,優(yōu)選獲取移動數(shù)據(jù)鏈接類型的網(wǎng)絡(luò)。同時使用該函數(shù)獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
通過該步驟,只篩選出網(wǎng)絡(luò)連通時網(wǎng)絡(luò)類型為移動數(shù)據(jù)鏈接的應(yīng)用場景,減少了處理器運算處理的數(shù)據(jù)量。
S203,如果所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間。
當(dāng)所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài)時,則認(rèn)為需要對移動終端的網(wǎng)絡(luò)流量進(jìn)行中斷處理。監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間。即實時判斷所述移動終端的屏幕處于非激活狀態(tài)的時間,為耗時操作,以使移動終端的屏幕變成非激活狀態(tài)后的一具體時間間隔,斷開網(wǎng)絡(luò)連接。
以Android系統(tǒng)為例,使用Sleep函數(shù),使移動終端的屏幕處于非激活狀態(tài)的處理線程進(jìn)入等待狀態(tài),以實現(xiàn)上述耗時操作。
如果所述移動終端的數(shù)據(jù)鏈接處于斷開狀態(tài),則保持?jǐn)嚅_狀態(tài)不變,不做任何處理。
通過該步驟,可以設(shè)置移動終端的屏幕變成非激活狀態(tài)后,設(shè)置斷開網(wǎng)絡(luò)的時間間隔,避免了連續(xù)關(guān)閉屏幕、點亮屏幕交互操作時連續(xù)關(guān)閉網(wǎng)絡(luò)連接、打開網(wǎng)絡(luò)連接的問題,挺高了本發(fā)明的穩(wěn)定性。
S204,如果所述移動終端的屏幕處于非激活狀態(tài)的時間大于或等于預(yù)設(shè)的時間閾值,斷開所述移動終端的數(shù)據(jù)鏈接。
以Android系統(tǒng)為例,獲取系統(tǒng)的管理員權(quán)限后,使用系統(tǒng)接口actionDisconnect函數(shù),斷開系統(tǒng)當(dāng)前網(wǎng)絡(luò)連接。斷開所述移動終端的數(shù)據(jù)鏈接的方法還有很多,例如暫停系統(tǒng)的網(wǎng)絡(luò)服務(wù)等,屬于現(xiàn)有比較成熟的技術(shù),在這里不做贅述,這些方法都應(yīng)在本申請的保護(hù)范圍之內(nèi)。
本申請實施例在移動終端的屏幕變成非激活狀態(tài)時,斷開所述移動終端的數(shù)據(jù)網(wǎng)絡(luò)鏈接,避免了移動終端的屏幕處于非激活狀態(tài)下的流量浪費。
在本申請一實施例中,參見圖3,所述方法包括:
S301記錄所述數(shù)據(jù)鏈接狀態(tài)。在獲取到所述移動終端的數(shù)據(jù)鏈接的狀態(tài)之后,記錄所述數(shù)據(jù)鏈接狀態(tài)。
當(dāng)所述移動終端的屏幕由激活狀態(tài)變成非激活狀態(tài)時,需要記錄當(dāng)前的數(shù)據(jù)鏈接狀態(tài),以在下次屏幕狀態(tài)改變作為設(shè)置網(wǎng)絡(luò)連接的依據(jù)。
當(dāng)所述移動終端的屏幕由激活狀態(tài)變成非激活狀態(tài)時,需要記錄當(dāng)前的數(shù)據(jù)鏈接狀態(tài)和當(dāng)前系統(tǒng)時間,以將當(dāng)前系統(tǒng)時間作為起點,根據(jù)預(yù)設(shè)的時間間隔,獲取斷開移動終端數(shù)據(jù)鏈接的時間。
本申請實施例還可以在移動終端關(guān)機時,記錄關(guān)機之前的設(shè)置。當(dāng)移動終端開機時,獲取記錄所述數(shù)據(jù)鏈接狀態(tài),根據(jù)所記錄的數(shù)據(jù)鏈接狀態(tài),設(shè)置當(dāng)前的網(wǎng)絡(luò)鏈接。
本申請實施例通過記錄所述數(shù)據(jù)鏈接狀態(tài),根據(jù)記錄設(shè)置網(wǎng)絡(luò)鏈接,減少了用戶的操作,提升了用戶體驗。
在本申請一實施例中,參見圖4,所述方法包括:
S401,如果所述移動終端的屏幕變成激活狀態(tài),獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
監(jiān)聽所述移動終端的屏幕狀態(tài)的變化,包括所述移動終端的屏幕變成激活狀態(tài)。當(dāng)所述移動終端接收物理鍵的操作指令時,移動終端屏幕由非激活狀態(tài)變成激活狀態(tài),即變成亮屏狀態(tài)。例如,通過按移動終端的屏幕電源鍵,將移動設(shè)備屏幕開啟。
如果所述移動終端的屏幕變成激活狀態(tài)時,則認(rèn)為所述移動終端進(jìn)入亮屏狀態(tài),如果需要對移動終端的網(wǎng)絡(luò)流量進(jìn)行控制,此時獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài),以根據(jù)當(dāng)前數(shù)據(jù)鏈接的狀態(tài)進(jìn)一步處理。以Android系統(tǒng)為例,使用getActiveNetworkInfo函數(shù),獲取當(dāng)前移動終端的網(wǎng)絡(luò)狀態(tài)。
S402,如果所述移動終端的數(shù)據(jù)鏈接處于斷開狀態(tài),查詢所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
查詢所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。以根據(jù)此數(shù)據(jù)鏈接狀態(tài)還原最近一次屏幕處于非激活狀態(tài)的數(shù)據(jù)鏈接狀態(tài)。
如果所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),則保持連通狀態(tài)不變,不做任何處理。
S403如果所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),重新連通所述移動終端的數(shù)據(jù)鏈接
以Android系統(tǒng)為例,獲取系統(tǒng)的管理員權(quán)限后,跟根據(jù)所記錄的數(shù)據(jù)鏈接狀態(tài),連接到網(wǎng)絡(luò)。連接網(wǎng)絡(luò)的方式與斷開網(wǎng)絡(luò)的方式相對應(yīng),所述移動終端的數(shù)據(jù)鏈接的方法還包括開啟系統(tǒng)的網(wǎng)絡(luò)服務(wù)等,屬于現(xiàn)有比較成熟的技術(shù),在這里不做贅述,這些方法都應(yīng)在本申請的保護(hù)范圍之內(nèi)。
如果所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接處于斷開狀態(tài),則保持?jǐn)嚅_狀態(tài)不變,不做任何處理。
本申請實施例監(jiān)聽到移動終端的屏幕變成非激活狀態(tài)時,根據(jù)記錄的最近一次屏幕處于非激活狀態(tài)的數(shù)據(jù)鏈接狀態(tài),還原為當(dāng)前的數(shù)據(jù)鏈接狀態(tài),使用戶不會感覺到網(wǎng)絡(luò)斷開、連通的操作,提升了用戶體驗。
在本申請一實施例中,參見圖5,所述方法包括:
S501,監(jiān)聽所述移動終端的數(shù)據(jù)鏈接的狀態(tài)變化
當(dāng)系統(tǒng)的數(shù)據(jù)鏈接狀態(tài)發(fā)生變化時,即時獲取變化后的狀態(tài)。
所述系統(tǒng)的數(shù)據(jù)鏈接狀態(tài)發(fā)生變化的包括:用戶手動設(shè)置數(shù)據(jù)鏈接狀態(tài)、移動設(shè)備無法接收到通信信號、移動設(shè)備接收到通信信號等。以Android系統(tǒng)為例,通過系統(tǒng)設(shè)置,可以打開或者關(guān)閉數(shù)據(jù)鏈接狀態(tài)。
S502,當(dāng)所述數(shù)據(jù)鏈接的狀態(tài)發(fā)生變化時,將記錄的所述數(shù)據(jù)鏈接狀態(tài)修改為所述數(shù)據(jù)鏈接的當(dāng)前狀態(tài)。
移動終端的數(shù)據(jù)鏈接的狀態(tài)變化后,將最新的網(wǎng)絡(luò)狀態(tài)與本發(fā)明記錄的數(shù)據(jù)鏈接狀態(tài)保持一致,以使移動終端的屏幕發(fā)生變化時,依據(jù)最新的數(shù)據(jù)鏈接狀態(tài)做處理。
例如,移動終端的數(shù)據(jù)鏈接處于連通狀態(tài)時,屏幕變成滅屏狀態(tài),此時記錄的數(shù)據(jù)鏈接狀態(tài)為連通狀態(tài),當(dāng)移動終端進(jìn)入無信號區(qū)域,如果沒有實時監(jiān)控網(wǎng)絡(luò)的方法,此時開啟屏幕,從記錄里讀取的數(shù)據(jù)鏈接狀態(tài)仍為連通狀態(tài),按照現(xiàn)有邏輯會去連接網(wǎng)絡(luò)。如果添加了實時監(jiān)控網(wǎng)絡(luò)的方法,則該方法會在當(dāng)移動終端進(jìn)入無信號區(qū)域時,將數(shù)據(jù)鏈接狀態(tài)修改為斷開狀態(tài),則在開啟屏幕時,從記錄里讀取的數(shù)據(jù)鏈接狀態(tài)為最新狀態(tài),即斷開狀態(tài),則此時不需要連接到網(wǎng)絡(luò),因此減少了不必要的操作。
根據(jù)上述看出,本申請實施例降低了處理器的運算量,并提高了的準(zhǔn)確性。
在申請一實施例中,參見圖6,所述方法包括:
S601,接收所述移動終端的系統(tǒng)發(fā)送的屏幕狀態(tài)改變消息,所述屏幕狀態(tài)改變消息中指示了屏幕狀態(tài)的變化信息。
以Android系統(tǒng)為例,Android系統(tǒng)提供消息廣播機制,該機制基于消息的發(fā)布-訂閱事件模型,即應(yīng)用程序在系統(tǒng)內(nèi)注冊某一事件,當(dāng)移動終端的系統(tǒng)觸發(fā)該事件時,會向該應(yīng)用程序廣播消息。在Android系統(tǒng)中,使用addAction函數(shù)進(jìn)行注冊,參數(shù)設(shè)置為該事件的響應(yīng)函數(shù)。該技術(shù)屬于現(xiàn)有技術(shù),在此不做贅述。
本申請實施例注冊亮屏、滅屏的事件,當(dāng)系統(tǒng)出現(xiàn)亮屏、滅屏事件時,會發(fā)送廣播消息,本實施例從而接收到消息。
602,解析所述屏幕狀態(tài)改變消息,獲得當(dāng)前屏幕狀態(tài)的變化。
解析步驟601接收到所述屏幕狀態(tài)改變消息,所述屏幕狀態(tài)改變消息為一具體數(shù)值,通過判斷該值獲取屏幕狀態(tài)變化類型,即從滅屏變?yōu)榱疗粱蛘邚牧疗磷優(yōu)闇缙粒@當(dāng)前屏幕狀態(tài)。
本申請實施例,通過消息廣播機制,即時獲取了屏幕狀態(tài)的變化,使本發(fā)明具備實時性。
在申請一實施例中,參見圖7,所述方法包括:
S701,接收所述移動終端的系統(tǒng)發(fā)送的數(shù)據(jù)鏈接狀態(tài)改變消息,所述數(shù)據(jù)鏈接狀態(tài)改變消息中指示了數(shù)據(jù)鏈接狀態(tài)的變化信息。
以Android系統(tǒng)為例,Android系統(tǒng)提供消息廣播機制,該機制基于消息的發(fā)布-訂閱事件模型,即應(yīng)用程序在系統(tǒng)內(nèi)注冊某一事件,當(dāng)移動終端的系統(tǒng)觸發(fā)該事件時,會向該應(yīng)用程序廣播消息。在Android系統(tǒng)中,使用addAction函數(shù)進(jìn)行注冊,參數(shù)設(shè)置為該事件的響應(yīng)函數(shù)。該技術(shù)屬于現(xiàn)有技術(shù),在此不做贅述。
本申請實施例注冊數(shù)據(jù)鏈接狀態(tài)改變的事件,當(dāng)系統(tǒng)出現(xiàn)數(shù)據(jù)鏈接狀態(tài)改變的事件時,會發(fā)送廣播消息,本實施例從而接收到消息。
702,解析所述數(shù)據(jù)鏈接狀態(tài)改變消息,獲得當(dāng)前數(shù)據(jù)鏈接狀態(tài)的變化。
解析步驟701接收到所述數(shù)據(jù)鏈接狀態(tài)改變消息,為一具體數(shù)值,通過判斷該值獲取數(shù)據(jù)鏈接狀態(tài)變化類型,即從連通變狀態(tài)變?yōu)閿嚅_狀態(tài)或者從斷開狀態(tài)變?yōu)檫B通狀態(tài)。
本申請實施例,通過消息廣播機制,即時獲取了數(shù)據(jù)鏈接狀態(tài)的變化,確保了本發(fā)明的實時性。
對應(yīng)于上述方法,本發(fā)明實施例還一種移動終端的流量控制裝置,所述移動終端可以為智能手機、PAD等。
參見圖1,所述移動終端1通常包括:主控芯片11、存儲器12、輸入輸出裝置13以及其他硬件14。所述主控芯片11控制各功能模塊,存儲器12存儲各應(yīng)用程序和數(shù)據(jù)。
參見圖8,所述裝置包括:
屏幕狀態(tài)監(jiān)聽模塊801,用于監(jiān)聽所述移動終端的屏幕狀態(tài)的變化。移動終端的屏幕狀態(tài)的變化包括由激活狀態(tài)變成未激活狀態(tài),即屏幕熄滅。
當(dāng)移動終端如果長時間未接收到用戶的輸入指令時,移動終端屏幕會由激活狀態(tài)變成未激活狀態(tài),即屏幕熄滅。例如,用戶會長時間不使用移動終端,移動終端長時間未接受到用戶的輸入指令,所述移動終端的屏幕處于非激活狀態(tài)。當(dāng)所述移動終端接收物理鍵的操作指令時,移動終端屏幕會發(fā)生屏幕熄滅,即移動終端由激活狀態(tài)變成非激活狀態(tài)。例如,通過按移動終端的屏幕電源鍵,將移動設(shè)備設(shè)置為滅屏狀態(tài)。
本申請?zhí)峁┮环N監(jiān)聽所述移動終端的屏幕狀態(tài)的變化的方法:注冊移動終端的系統(tǒng)事件,當(dāng)屏幕狀態(tài)發(fā)生變化時,移動終端的系統(tǒng)會將消息發(fā)送給注冊過該事件的應(yīng)用程序,應(yīng)用程序接收到消息,可解析消息的具體內(nèi)容,獲得屏幕的狀態(tài)變化。以Android系統(tǒng)為例,使用PowerManager獲取注冊事件,將應(yīng)用程序的滅屏的操作注冊系統(tǒng)事件中,即應(yīng)用程序中添加ActionScreenOff的函數(shù),將該函數(shù)冊到系統(tǒng)事件中;當(dāng)外部觸發(fā)滅屏的事件時,系統(tǒng)調(diào)用注冊過的事件ActionScreenOff,并將狀態(tài)的改變結(jié)果傳遞給應(yīng)用程序,從而監(jiān)聽所述移動終端的屏幕狀態(tài)的變化。
數(shù)據(jù)鏈接狀態(tài)獲取模塊802,用于當(dāng)所述移動終端的屏幕變成非激活狀態(tài)時,獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
如果所述移動終端的屏幕變成非激活狀態(tài)時,則認(rèn)為所述移動終端進(jìn)入滅屏狀態(tài),需要對移動終端的網(wǎng)絡(luò)流量進(jìn)行控制,此時獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài),以根據(jù)當(dāng)前數(shù)據(jù)鏈接的狀態(tài)進(jìn)一步處理。
以Android系統(tǒng)為例,使用getActiveNetworkInfo函數(shù),獲取當(dāng)前移動終端的網(wǎng)絡(luò)狀態(tài)。如果網(wǎng)絡(luò)為連通狀態(tài),則獲取網(wǎng)絡(luò)類型。移動終端的網(wǎng)絡(luò)類型包括藍(lán)牙數(shù)據(jù)連接、以太網(wǎng)數(shù)據(jù)連接、移動數(shù)據(jù)連接、Wifi連接。由于用戶對移動數(shù)據(jù)鏈接的網(wǎng)絡(luò)流量關(guān)注比較大,因此在本申請實施例中,優(yōu)選獲取移動數(shù)據(jù)鏈接類型的網(wǎng)絡(luò)。同時使用該函數(shù)獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
通過該步驟,只篩選出網(wǎng)絡(luò)連通時網(wǎng)絡(luò)類型為移動數(shù)據(jù)鏈接的應(yīng)用場景,減少了處理器運算處理的數(shù)據(jù)量。
時間判決模塊803,用于當(dāng)所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài)時,監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間。
當(dāng)所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài)時,則認(rèn)為需要對移動終端的網(wǎng)絡(luò)流量進(jìn)行中斷處理。監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間。即實時判斷所述移動終端的屏幕處于非激活狀態(tài)的時間,為耗時操作,以使移動終端的屏幕變成非激活狀態(tài)后的一具體時間間隔,斷開網(wǎng)絡(luò)連接。
以Android系統(tǒng)為例,使用Sleep函數(shù),使移動終端的屏幕處于非激活狀態(tài)的處理線程進(jìn)入等待狀態(tài),以實現(xiàn)上述耗時操作。
如果所述移動終端的數(shù)據(jù)鏈接處于斷開狀態(tài),則保持?jǐn)嚅_狀態(tài)不變,不做任何處理。
通過該步驟,可以設(shè)置移動終端的屏幕變成非激活狀態(tài)后,設(shè)置斷開網(wǎng)絡(luò)的時間間隔,避免了連續(xù)關(guān)閉屏幕、點亮屏幕交互操作時連續(xù)關(guān)閉網(wǎng)絡(luò)連接、打開網(wǎng)絡(luò)連接的問題,挺高了本發(fā)明的穩(wěn)定性。
數(shù)據(jù)鏈接操作模塊804,用于所述移動終端的屏幕處于非激活狀態(tài)的時間大于或等于預(yù)設(shè)的時間閾值時,斷開所述移動終端的數(shù)據(jù)鏈接。
以Android系統(tǒng)為例,獲取系統(tǒng)的管理員權(quán)限后,使用系統(tǒng)接口actionDisconnect函數(shù),斷開系統(tǒng)當(dāng)前網(wǎng)絡(luò)連接。斷開所述移動終端的數(shù)據(jù)鏈接的方法還有很多,例如暫停系統(tǒng)的網(wǎng)絡(luò)服務(wù)等,屬于現(xiàn)有比較成熟的技術(shù),在這里不做贅述,這些方法都應(yīng)在本申請的保護(hù)范圍之內(nèi)。
本申請實施例在監(jiān)聽到移動終端的屏幕變成非激活狀態(tài)時,斷開所述移動終端的數(shù)據(jù)網(wǎng)絡(luò)鏈接,避免了移動終端的屏幕處于非激活狀態(tài)下的流量浪費。
在本申請一實施例中,參見圖9,所述裝置包括:
數(shù)據(jù)鏈接狀態(tài)記錄模塊901。在數(shù)據(jù)鏈接狀態(tài)獲取模塊802獲取到所述移動終端的數(shù)據(jù)鏈接的狀態(tài)之后,記錄所述數(shù)據(jù)鏈接狀態(tài)。
當(dāng)所述移動終端的屏幕由激活狀態(tài)變成非激活狀態(tài)時,需要記錄當(dāng)前的數(shù)據(jù)鏈接狀態(tài),以在下次屏幕狀態(tài)改變作為設(shè)置網(wǎng)絡(luò)連接的依據(jù)。
當(dāng)所述移動終端的屏幕由激活狀態(tài)變成非激活狀態(tài)時,需要記錄當(dāng)前的數(shù)據(jù)鏈接狀態(tài)和當(dāng)前系統(tǒng)時間,以將當(dāng)前系統(tǒng)時間作為起點,根據(jù)預(yù)設(shè)的時間間隔,獲取斷開移動終端數(shù)據(jù)鏈接的時間。
本申請實施例還可以在移動終端關(guān)機時,記錄關(guān)機之前的設(shè)置。當(dāng)移動終端開機時,獲取記錄所述數(shù)據(jù)鏈接狀態(tài),根據(jù)所記錄的數(shù)據(jù)鏈接狀態(tài),設(shè)置當(dāng)前的網(wǎng)絡(luò)鏈接。
本申請實施例通過記錄所述數(shù)據(jù)鏈接狀態(tài),根據(jù)記錄設(shè)置網(wǎng)絡(luò)鏈接,減少了用戶的操作,提升了用戶體驗。
在本申請一實施例中,參見圖10,所述裝置包括:
數(shù)據(jù)鏈接查詢模塊902,如果數(shù)據(jù)鏈接狀態(tài)獲取模塊802獲取的所述移動終端的屏幕變成激活狀態(tài),獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
監(jiān)聽所述移動終端的屏幕狀態(tài)的變化,包括所述移動終端的屏幕變成激活狀態(tài)。當(dāng)所述移動終端接收物理鍵的操作指令時,移動終端屏幕由非激活狀態(tài)變成激活狀態(tài),即變成亮屏狀態(tài)。例如,通過按移動終端的屏幕電源鍵,將移動設(shè)備屏幕開啟。
如果所述移動終端的屏幕變成激活狀態(tài)時,則認(rèn)為所述移動終端進(jìn)入亮屏狀態(tài),如果需要對移動終端的網(wǎng)絡(luò)流量進(jìn)行控制,此時獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài),以根據(jù)當(dāng)前數(shù)據(jù)鏈接的狀態(tài)進(jìn)一步處理。以Android系統(tǒng)為例,使用getActiveNetworkInfo函數(shù),獲取當(dāng)前移動終端的網(wǎng)絡(luò)狀態(tài)。
如果所述移動終端的數(shù)據(jù)鏈接處于斷開狀態(tài),查詢所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
查詢所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。以根據(jù)此數(shù)據(jù)鏈接狀態(tài)還原最近一次屏幕處于非激活狀態(tài)的數(shù)據(jù)鏈接狀態(tài)。
如果所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),則保持連通狀態(tài)不變,不做任何處理。
如果所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接處于連通狀態(tài),重新連通所述移動終端的數(shù)據(jù)鏈接
以Android系統(tǒng)為例,獲取系統(tǒng)的管理員權(quán)限后,跟根據(jù)所記錄的數(shù)據(jù)鏈接狀態(tài),連接到網(wǎng)絡(luò)。連接網(wǎng)絡(luò)的方式與斷開網(wǎng)絡(luò)的方式相對應(yīng),所述移動終端的數(shù)據(jù)鏈接的方法包括開啟系統(tǒng)的網(wǎng)絡(luò)服務(wù)等,屬于現(xiàn)有比較成熟的技術(shù),在這里不做贅述,這些方法都應(yīng)在本申請的保護(hù)范圍之內(nèi)。
如果所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接處于斷開狀態(tài),則保持?jǐn)嚅_狀態(tài)不變,不做任何處理。
本申請實施例監(jiān)聽到移動終端的屏幕變成非激活狀態(tài)時,根據(jù)記錄的最近一次屏幕處于非激活狀態(tài)的數(shù)據(jù)鏈接狀態(tài),還原為當(dāng)前的數(shù)據(jù)鏈接狀態(tài),使用戶不會感覺到網(wǎng)絡(luò)斷開、連通的的操作,提升了用戶體驗。
在本申請一實施例中,參見圖11,所述裝置包括:
數(shù)據(jù)鏈接狀態(tài)監(jiān)聽模塊903,用于監(jiān)聽所述移動終端的數(shù)據(jù)鏈接的狀態(tài)變化
當(dāng)系統(tǒng)的數(shù)據(jù)鏈接狀態(tài)發(fā)生變化時,即時獲取變化后的狀態(tài)。
所述系統(tǒng)的數(shù)據(jù)鏈接狀態(tài)發(fā)生變化的包括:用戶手動設(shè)置數(shù)據(jù)鏈接狀態(tài)、移動設(shè)備無法接收到通信信號、移動設(shè)備接收到通信信號等。以Android系統(tǒng)為例,通過系統(tǒng)設(shè)置,可以打開或者關(guān)閉數(shù)據(jù)鏈接狀態(tài)。
當(dāng)所述數(shù)據(jù)鏈接的狀態(tài)發(fā)生變化時,數(shù)據(jù)鏈接狀態(tài)記錄模塊901將記錄的所述數(shù)據(jù)鏈接狀態(tài)修改為所述數(shù)據(jù)鏈接的當(dāng)前狀態(tài)。
移動終端的數(shù)據(jù)鏈接的狀態(tài)變化后,將最新的網(wǎng)絡(luò)狀態(tài)與本發(fā)明記錄的數(shù)據(jù)鏈接狀態(tài)保持一致,以使移動終端的屏幕發(fā)生變化時,依據(jù)最新的數(shù)據(jù)鏈接狀態(tài)做處理。
例如,移動終端的數(shù)據(jù)鏈接處于連通狀態(tài)時,屏幕變成滅屏狀態(tài),此時記錄的數(shù)據(jù)鏈接狀態(tài)為連通狀態(tài),當(dāng)移動終端進(jìn)入無信號區(qū)域,如果沒有實時監(jiān)控網(wǎng)絡(luò)的方法,此時開啟屏幕,從記錄里讀取的數(shù)據(jù)鏈接狀態(tài)仍為連通狀態(tài),按照現(xiàn)有邏輯會去連接網(wǎng)絡(luò)。如果添加了實時監(jiān)控網(wǎng)絡(luò)的方法,則該方法會在當(dāng)移動終端進(jìn)入無信號區(qū)域時,將數(shù)據(jù)鏈接狀態(tài)修改為斷開狀態(tài),則在開啟屏幕時,從記錄里讀取的數(shù)據(jù)鏈接狀態(tài)為最新狀態(tài),即斷開狀態(tài),則此時不需要連接到網(wǎng)絡(luò),因此減少了不必要的操作。
根據(jù)上述看出,本申請實施例降低了處理器的運算量,并提高了的準(zhǔn)確性。
在申請一實施例中,參見圖12,所述屏幕狀態(tài)監(jiān)聽模塊包括:
屏幕狀態(tài)改變消息接收模塊904,用于接收所述移動終端的系統(tǒng)發(fā)送的屏幕狀態(tài)改變消息,所述屏幕狀態(tài)改變消息中指示了屏幕狀態(tài)的變化信息。
以Android系統(tǒng)為例,Android系統(tǒng)提供消息廣播機制,該機制基于消息的發(fā)布-訂閱事件模型,即應(yīng)用程序在系統(tǒng)內(nèi)注冊某一事件,當(dāng)移動終端的系統(tǒng)觸發(fā)該事件時,會向該應(yīng)用程序廣播消息。在Android系統(tǒng)中,使用addAction函數(shù)進(jìn)行注冊,參數(shù)設(shè)置為該事件的響應(yīng)函數(shù)。該技術(shù)屬于現(xiàn)有技術(shù),在此不做贅述。
本申請實施例注冊亮屏、滅屏的事件,當(dāng)系統(tǒng)出現(xiàn)亮屏、滅屏事件時,會發(fā)送廣播消息,本實施例從而接收到消息。
屏幕狀態(tài)改變消息解析模塊905,用于解析跟據(jù)所述屏幕狀態(tài)改變消息,獲得取當(dāng)前屏幕狀態(tài)的變化。
解析屏幕狀態(tài)改變消息接收模塊904接收到所述屏幕狀態(tài)改變消息,所述屏幕狀態(tài)改變消息為一具體數(shù)值,通過判斷該值解析該消息,獲取屏幕狀態(tài)變化類型,即從滅屏變?yōu)榱疗粱蛘邚牧疗磷優(yōu)闇缙粒瑫r獲取當(dāng)前屏幕狀態(tài)。
本申請實施例,通過消息廣播機制,即時獲取了屏幕狀態(tài)的變化,使本發(fā)明具備實時性。
在申請一實施例中,參見圖13,所述數(shù)據(jù)鏈接狀態(tài)監(jiān)聽模塊包括:
數(shù)據(jù)鏈接狀態(tài)改變消息接收模塊906,用于接收所述移動終端的系統(tǒng)發(fā)送的數(shù)據(jù)鏈接狀態(tài)改變消息。
以Android系統(tǒng)為例,Android系統(tǒng)提供消息廣播機制,該機制基于消息的發(fā)布-訂閱事件模型,即應(yīng)用程序在系統(tǒng)內(nèi)注冊某一事件,當(dāng)移動終端的系統(tǒng)觸發(fā)該事件時,會向該應(yīng)用程序廣播消息。在Android系統(tǒng)中,使用addAction函數(shù)進(jìn)行注冊,參數(shù)設(shè)置為該事件的響應(yīng)函數(shù)。該技術(shù)屬于現(xiàn)有技術(shù),在此不做贅述。
本申請實施例注冊數(shù)據(jù)鏈接狀態(tài)改變的事件,當(dāng)系統(tǒng)出現(xiàn)數(shù)據(jù)鏈接狀態(tài)改變的事件時,會發(fā)送廣播消息,本實施例從而接收到消息。
數(shù)據(jù)鏈接狀態(tài)改變消息解析模塊907,用于解析數(shù)據(jù)鏈接狀態(tài)改變消息,獲得當(dāng)前數(shù)據(jù)鏈接狀態(tài)的變化。
解析數(shù)據(jù)鏈接狀態(tài)改變消息接收模塊906接收到所述數(shù)據(jù)鏈接狀態(tài)改變消息為一具體數(shù)值,,通過判斷該值獲取數(shù)據(jù)鏈接狀態(tài)變化類型,即從連通變狀態(tài)變?yōu)閿嚅_狀態(tài)或者從斷開狀態(tài)變?yōu)檫B通狀態(tài),同時獲取當(dāng)前數(shù)據(jù)鏈接狀態(tài)。
本申請實施例,通過消息廣播機制,即時獲取了數(shù)據(jù)鏈接狀態(tài)的變化,確保了本發(fā)明的實時性。
在申請一實施例中,參見圖14,所述方法包括:
本申請實施例可以是運行在移動終端的一個應(yīng)用程序,也可以是運行在移動終端的一個服務(wù)。當(dāng)所述應(yīng)用程序或者服務(wù)運行后,進(jìn)入步驟S201,監(jiān)聽所述移動終端的屏幕的狀態(tài)的變化。
以Android系統(tǒng)為例,Android系統(tǒng)提供消息廣播機制,該機制基于消息的發(fā)布-訂閱事件模型,本申請實施例注冊亮屏、滅屏的事件,當(dāng)系統(tǒng)出現(xiàn)亮屏、滅屏事件時,會發(fā)送廣播消息。
S601,接收所述移動終端的系統(tǒng)發(fā)送的屏幕狀態(tài)改變消息。即當(dāng)屏幕狀態(tài)改變時,接收系統(tǒng)廣播的屏幕狀態(tài)改變消息。
S602,解析步驟S601接收到的所述屏幕狀態(tài)改變消息,獲得當(dāng)前屏幕的狀態(tài)變化。
S206,所述移動終端的屏幕變成處于非激活狀態(tài)。即根據(jù)步驟S602獲得的當(dāng)前屏幕的狀態(tài)變化,判斷移動終端的屏幕的狀態(tài)是否變成非激活狀態(tài)。如果是則進(jìn)入步驟S207。
S207,獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
以Android系統(tǒng)為例,使用getActiveNetworkInfo函數(shù),獲取當(dāng)前移動終端的網(wǎng)絡(luò)狀態(tài)。
S301,記錄所述數(shù)據(jù)鏈接狀態(tài)。即將S207獲取的數(shù)據(jù)鏈接的狀態(tài)記錄下來,存儲到內(nèi)存、物理存儲介質(zhì)上。
S306,判斷所述數(shù)據(jù)鏈接的狀態(tài)是否處于連通狀態(tài)。如果是,則進(jìn)入步驟S307;如果不是,則結(jié)束本次操作。
S307,監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間。
本步驟為一耗時操作,以使移動終端的屏幕變成非激活狀態(tài)后的一具體時間間隔,斷開網(wǎng)絡(luò)連接。
S308,判斷所述移動終端的屏幕處于非激活狀態(tài)的時間是否大于或等于預(yù)設(shè)的時間閾值。如果是,則進(jìn)入步驟S309;如果不是,則結(jié)束本次操作。
S309,斷開所述移動終端的數(shù)據(jù)鏈接。
如果步驟S206中所述移動終端的屏幕變成激活狀態(tài),則通過步驟S207獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài),并通過步驟S301,記錄所述數(shù)據(jù)鏈接狀態(tài)。
步驟S406判斷所述數(shù)據(jù)鏈接的狀態(tài)是否處于斷開狀態(tài),如果所述數(shù)據(jù)鏈接的狀態(tài)不是處于斷開狀態(tài),退出本次操作;如果述數(shù)據(jù)鏈接的狀態(tài)處于斷開狀態(tài),則進(jìn)入步驟S407.
S407,查詢所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。所述鏈接狀態(tài)即步驟S301中記錄的數(shù)據(jù)鏈路狀態(tài)。
S408,判斷所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接是否處于連通狀態(tài)。如果是,則認(rèn)為:當(dāng)前數(shù)據(jù)鏈路的斷開狀態(tài)是由本申請實施例斷開的,需要重新連通數(shù)據(jù)鏈路,進(jìn)入步驟S409;如果不是,則認(rèn)為當(dāng)前網(wǎng)絡(luò)狀態(tài)是由其它因素造成的,不做任何處理,結(jié)束本次操作。
S409,重新連通所述移動終端的數(shù)據(jù)鏈接。
以Android系統(tǒng)為例,獲取系統(tǒng)的管理員權(quán)限后,跟根據(jù)所記錄的數(shù)據(jù)鏈接狀態(tài),連接到網(wǎng)絡(luò)。
S501,監(jiān)聽所述移動終端的數(shù)據(jù)鏈接的狀態(tài)變化。
當(dāng)所述應(yīng)用程序或者服務(wù)運行后,開始步驟S201后,開始步驟S501。優(yōu)選地,使用多線程技術(shù)實現(xiàn)本步驟,即創(chuàng)建一個新的線程運行本步驟。
以Android系統(tǒng)為例,Android系統(tǒng)提供消息廣播機制,該機制基于消息的發(fā)布-訂閱事件模型,本申請實施例注冊亮屏、滅屏的事件,當(dāng)系統(tǒng)出現(xiàn)數(shù)據(jù)鏈路狀態(tài)改變事件時,會發(fā)送廣播消息。
S701,接收所述移動終端的系統(tǒng)發(fā)送的數(shù)據(jù)鏈接狀態(tài)改變消息。即當(dāng)數(shù)據(jù)鏈路狀態(tài)改變時,接收系統(tǒng)廣播的屏幕狀態(tài)改變消息。
S702,解析所述數(shù)據(jù)鏈接狀態(tài)改變消息,獲得當(dāng)前數(shù)據(jù)鏈接的狀態(tài)變化。即解析S701接收的數(shù)據(jù)鏈接狀態(tài)改變消息,獲得當(dāng)前數(shù)據(jù)鏈接的狀態(tài)變化。
S301,記錄所述數(shù)據(jù)鏈接狀態(tài)。即將S702獲取的數(shù)據(jù)鏈接的狀態(tài)記錄下來,存儲到內(nèi)存、物理存儲介質(zhì)上。
本申請實施例在移動終端的屏幕變成非激活狀態(tài)時,斷開所述移動終端的數(shù)據(jù)網(wǎng)絡(luò)鏈接,避免了移動終端的屏幕處于非激活狀態(tài)下的流量浪費;同時通過記錄數(shù)據(jù)鏈路的狀態(tài),在移動終端的屏幕變成激活狀態(tài)時,重新連通數(shù)據(jù)網(wǎng)絡(luò)鏈接,使用戶感受不到網(wǎng)絡(luò)的斷開與連接,增強了用戶體驗。
在申請一實施例中,參見圖15,所述裝置包括:
屏幕狀態(tài)監(jiān)聽模塊801,用于監(jiān)聽所述移動終端的屏幕的狀態(tài)的變化。
所述屏幕狀態(tài)監(jiān)聽模塊801包括:
屏幕狀態(tài)改變消息接收模塊904,接收所述移動終端的系統(tǒng)發(fā)送的屏幕狀態(tài)改變消息。即當(dāng)屏幕狀態(tài)改變時,接收系統(tǒng)廣播的屏幕狀態(tài)改變消息;
屏幕狀態(tài)改變消息接收模塊905,用于解析步驟S601接收到的所述屏幕狀態(tài)改變消息,獲得當(dāng)前屏幕的狀態(tài)變化。
數(shù)據(jù)鏈接狀態(tài)獲取模塊802,當(dāng)屏幕狀態(tài)監(jiān)聽模塊801檢測到所述移動終端的屏幕發(fā)生變化時,獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
以Android系統(tǒng)為例,使用getActiveNetworkInfo函數(shù),獲取當(dāng)前移動終端的網(wǎng)絡(luò)狀態(tài)。
數(shù)據(jù)鏈接狀態(tài)記錄模塊901,用于記錄所述數(shù)據(jù)鏈接狀態(tài)獲取模塊802獲取的數(shù)據(jù)鏈接狀態(tài)。即將數(shù)據(jù)鏈接的狀態(tài)記錄下來,存儲到內(nèi)存、物理存儲介質(zhì)上。
時間判決模塊803,用于監(jiān)測所述移動終端的屏幕處于非激活狀態(tài)的時間。
本模塊用于耗時操作,以使移動終端的屏幕變成非激活狀態(tài)后的一具體時間間隔,斷開網(wǎng)絡(luò)連接。當(dāng)時間判決模塊803判斷所述移動終端的屏幕處于非激活狀態(tài)的時間是否大于或等于預(yù)設(shè)的時間閾值時,斷開所述移動終端的數(shù)據(jù)鏈接。
如果屏幕狀態(tài)監(jiān)聽模塊801中檢測到所述移動終端的屏幕變成激活狀態(tài),則通過數(shù)據(jù)鏈接狀態(tài)獲取模塊802獲取所述移動終端的數(shù)據(jù)鏈接的狀態(tài),并通過數(shù)據(jù)鏈接狀態(tài)記錄模塊902,記錄所述數(shù)據(jù)鏈接狀態(tài)。
判斷數(shù)據(jù)鏈接狀態(tài)獲取模塊802獲取的數(shù)據(jù)鏈接的狀態(tài)是否處于斷開狀態(tài),如果述數(shù)據(jù)鏈接的狀態(tài)處于斷開狀態(tài),則據(jù)鏈接查詢模塊902,查詢所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接的狀態(tài)。
判斷所述移動終端的屏幕最近一次處于非激活狀態(tài)時獲取的所述移動終端的數(shù)據(jù)鏈接是否處于連通狀態(tài)。如果是,則數(shù)據(jù)鏈接操作模塊804重新連通數(shù)據(jù)鏈接,如果不是,不做任何處理。
以Android系統(tǒng)為例,獲取系統(tǒng)的管理員權(quán)限后,跟根據(jù)所記錄的數(shù)據(jù)鏈接狀態(tài),連接到網(wǎng)絡(luò)。
所述裝置還包括:數(shù)據(jù)鏈接狀態(tài)監(jiān)聽模塊903,用于監(jiān)聽所述移動終端的數(shù)據(jù)鏈接的狀態(tài)變化。
數(shù)據(jù)鏈接狀態(tài)監(jiān)聽模塊903包括:
數(shù)據(jù)鏈接狀態(tài)改變消息接收模塊906,用于接收所述移動終端的系統(tǒng)發(fā)送的數(shù)據(jù)鏈接狀態(tài)改變消息,即當(dāng)數(shù)據(jù)鏈路狀態(tài)改變時,接收系統(tǒng)廣播的屏幕狀態(tài)改變消息;
數(shù)據(jù)鏈接狀態(tài)改變消息解析模塊907,用于解析所述數(shù)據(jù)鏈接狀態(tài)改變消息,獲得當(dāng)前數(shù)據(jù)鏈接的狀態(tài)變化,即解析S701接收的數(shù)據(jù)鏈接狀態(tài)改變消息,獲得當(dāng)前數(shù)據(jù)鏈接的狀態(tài)變化。
數(shù)據(jù)鏈接狀態(tài)監(jiān)聽模塊903檢測到數(shù)據(jù)鏈接的狀態(tài)發(fā)生改變后,數(shù)據(jù)鏈接狀態(tài)記錄模塊901記錄所述數(shù)據(jù)鏈接狀態(tài)。即將數(shù)據(jù)鏈接的狀態(tài)記錄下來,存儲到內(nèi)存、物理存儲介質(zhì)上。
本申請實施例在移動終端的屏幕變成非激活狀態(tài)時,斷開所述移動終端的數(shù)據(jù)網(wǎng)絡(luò)鏈接,避免了移動終端的屏幕處于非激活狀態(tài)下的流量浪費;同時通過記錄數(shù)據(jù)鏈路的狀態(tài),在移動終端的屏幕變成激活狀態(tài)時,重新連通數(shù)據(jù)網(wǎng)絡(luò)鏈接,使用戶感受不到網(wǎng)絡(luò)的斷開與連接,增強了用戶體驗。
圖16是本申請實施例提供的移動終端的網(wǎng)絡(luò)流量控制方法的電子設(shè)備的硬件結(jié)構(gòu)示意圖,如圖13所示,該設(shè)備包括:
一個或多個處理器110以及存儲器120,圖13中以一個處理器110為例。
執(zhí)行移動終端的網(wǎng)絡(luò)流量控制電子設(shè)備還可以包括:輸入裝置130和輸出裝置140。
處理器110、存儲器120、輸入裝置130和輸出裝置140可以通過總線或者其他方式連接,圖13中以通過總線連接為例。
存儲器120作為一種非易失性計算機可讀存儲介質(zhì),可用于存儲非易失性軟件程序、非易失性計算機可執(zhí)行程序以及模塊,如本申請實施例中移動終端的網(wǎng)絡(luò)流量控制方法對應(yīng)的程序指令/模塊(例如,附圖8所示的屏幕狀態(tài)監(jiān)聽模塊620)。處理器910通過運行存儲在存儲器920中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述方法實施例視頻節(jié)目互動的方法。
存儲器120可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需要的應(yīng)用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)移動終端的網(wǎng)絡(luò)流量控制電子設(shè)備的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲器920可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態(tài)存儲器件。在一些實施例中,存儲器120可選包括相對于處理器110遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至視頻節(jié)目互動的處理裝置。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
輸入裝置130可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與移動終端的網(wǎng)絡(luò)流量控制電子設(shè)備的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。輸出裝置140可包括顯示屏等顯示設(shè)備。
所述一個或者多個模塊存儲在所述存儲器120中,當(dāng)被所述一個或者多個處理器110執(zhí)行時,執(zhí)行上述任意方法實施例中移動終端的網(wǎng)絡(luò)流量控制的方法。
上述產(chǎn)品可執(zhí)行本申請實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本申請實施例所提供的方法。
本申請實施例的電子設(shè)備以多種形式存在,包括但不限于:
(1)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。
(2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
(4)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
(5)其他具有數(shù)據(jù)交互功能的電子裝置。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對相關(guān)技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
最后應(yīng)說明的是:以上實施例僅用以說明本申請的技術(shù)方案,而非對其限制;盡管參照前述實施例對本申請進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本申請各實施例技術(shù)方案的精神和范圍。