一種安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及安卓設(shè)備電源管理技術(shù)領(lǐng)域,特別是涉及一種安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著安卓設(shè)備的加速更新?lián)Q代,附屬器件的使用種類繁多?;魻柶骷褪瞧渲幸环N重要的器件,利用霍爾器件來(lái)實(shí)現(xiàn)安卓設(shè)備的開(kāi)合蓋功能是一種常見(jiàn)的使用方式。
[0003]如三星,華為等設(shè)備廠商出廠的安卓設(shè)備也是帶赫爾器件的,外在的基本功能都相似,都是開(kāi)蓋屏幕亮,解鎖滑動(dòng)鎖屏。合蓋屏幕滅,鎖屏。
[0004]市面上的安卓設(shè)備對(duì)霍爾器件的實(shí)現(xiàn)采用的是模擬按鍵方式。把赫爾器件的離開(kāi)和靠近模擬成一個(gè)按鍵的按下和松開(kāi),具體點(diǎn)即是合蓋模擬成一個(gè)關(guān)閉按鍵(KEY_D0WN),開(kāi)蓋模擬成一個(gè)開(kāi)啟按鍵(KEY_UP),后續(xù)的各項(xiàng)功能都是在按鍵事件的響應(yīng)中實(shí)現(xiàn)。這種方式實(shí)現(xiàn)起來(lái)比較繁瑣,涉及到JNI (Java Native Interface, Java本地接口 )層處理,架構(gòu)(Framework)層處理,而且按鍵事件處理的守護(hù)進(jìn)程要對(duì)模擬按鍵監(jiān)視,永遠(yuǎn)不能休眠,浪費(fèi)電量,能耗較高。
【發(fā)明內(nèi)容】
[0005]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)方法和系統(tǒng),用于解決現(xiàn)有技術(shù)中,對(duì)霍爾器件的實(shí)現(xiàn)采用模擬案件方式能耗較高的問(wèn)題。
[0006]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)方法,所述安卓設(shè)備的開(kāi)合蓋通過(guò)霍爾器件事件完成,在所述安卓設(shè)備處于深度休眠狀態(tài)時(shí),所述安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)方法包括:步驟S10,檢測(cè)并判斷所述霍爾器件事件是否發(fā)生:若是,則喚醒所述安卓設(shè)備中的系統(tǒng)服務(wù)進(jìn)程,并跳轉(zhuǎn)至步驟S20 ;若否,則繼續(xù)檢測(cè);步驟S20,所述系統(tǒng)服務(wù)進(jìn)程轉(zhuǎn)為運(yùn)行態(tài),并啟動(dòng)電源管理服務(wù);步驟S30,通過(guò)所述電源管理服務(wù)監(jiān)聽(tīng)所述霍爾器件事件,并進(jìn)行邏輯判斷:當(dāng)判斷所述霍爾器件事件為霍爾器件打開(kāi),則調(diào)用系統(tǒng)喚醒方法喚醒所述安卓設(shè)備;當(dāng)判斷所述霍爾器件事件為所述霍爾器件關(guān)閉,則調(diào)用系統(tǒng)休眠方法,讓所述安卓設(shè)備進(jìn)入休眠狀態(tài)。
[0007]于本發(fā)明的一實(shí)施例中,所述霍爾器件打開(kāi),表示所述安卓設(shè)備開(kāi)蓋;所述霍爾器件關(guān)閉,表示所述安卓設(shè)備合蓋。
[0008]于本發(fā)明的一實(shí)施例中,所述步驟S10中所述系統(tǒng)服務(wù)進(jìn)程喚醒是通過(guò)Linux內(nèi)核來(lái)實(shí)現(xiàn)的。
[0009]于本發(fā)明的一實(shí)施例中,所述步驟S30中,在所述電源管理服務(wù)在監(jiān)聽(tīng)所述霍爾器件事件前,進(jìn)行如下設(shè)置:在所述電源管理服務(wù)中實(shí)例化一個(gè)傳感器管理器對(duì)象;從所述傳感器管理器對(duì)象中獲取所述霍爾器件對(duì)應(yīng)的霍爾器件對(duì)象,實(shí)例化霍爾器件事件監(jiān)聽(tīng)類;在所述安卓系統(tǒng)上注冊(cè)對(duì)所述霍爾器件事件的監(jiān)聽(tīng)。
[0010]于本發(fā)明的一實(shí)施例中,所述霍爾器件事件的監(jiān)聽(tīng)的注冊(cè)是通過(guò)所述傳感器管理器對(duì)象的registerListener函數(shù)來(lái)完成的。
[0011]于本發(fā)明的一實(shí)施例中,所述步驟S30的所述電源管理服務(wù)監(jiān)聽(tīng)所述霍爾器件事件并進(jìn)行邏輯判斷,具體包括:所述霍爾事件監(jiān)聽(tīng)類監(jiān)聽(tīng)到發(fā)生了所述霍爾器件事件時(shí),調(diào)用onSensorChanged函數(shù);通過(guò)所述onSensorChanged函數(shù),判斷所述霍爾器件的狀態(tài);其中所述霍爾器件的狀態(tài)包括打開(kāi)和關(guān)閉;根據(jù)所述霍爾器件的狀態(tài)判斷所述安卓設(shè)備的開(kāi)蓋和合蓋。
[0012]于本發(fā)明的一實(shí)施例中,所述步驟S30中,喚醒所述安卓設(shè)備包括:點(diǎn)亮所述安卓設(shè)備的屏幕;解開(kāi)所述安卓設(shè)備的屏保鎖;進(jìn)入所述安卓設(shè)備上次合蓋時(shí)的界面。
[0013]于本發(fā)明的一實(shí)施例中,所述步驟S30中,所述安卓設(shè)備進(jìn)入休眠狀態(tài)包括:關(guān)閉所述安卓設(shè)備的屏幕并鎖屏。
[0014]一種安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)系統(tǒng),所述安卓設(shè)備的開(kāi)合蓋通過(guò)霍爾器件事件完成,所述安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)系統(tǒng)包括:檢測(cè)判斷模塊,用于檢測(cè)和判斷所述霍爾器件事件是否發(fā)生;喚醒模塊,用于喚醒所述安卓設(shè)備中的系統(tǒng)服務(wù)進(jìn)程,并將所述系統(tǒng)服務(wù)進(jìn)程轉(zhuǎn)為運(yùn)行態(tài);電源管理服務(wù)啟動(dòng)模塊,用于啟動(dòng)所述電源管理服務(wù);監(jiān)聽(tīng)和邏輯判斷模塊,用于通過(guò)所述電源管理服務(wù)監(jiān)聽(tīng)所述霍爾器件事件,并進(jìn)行邏輯判斷,從而喚醒或休眠所述安卓設(shè)備的系統(tǒng)。
[0015]于本發(fā)明的一實(shí)施例中,所述監(jiān)聽(tīng)和邏輯判斷模塊通過(guò)所述電源管理服務(wù)實(shí)例化一個(gè)傳感器管理器對(duì)象;并從所述傳感器管理器對(duì)象中獲取所述霍爾器件對(duì)應(yīng)的霍爾器件對(duì)象,實(shí)現(xiàn)霍爾器件事件監(jiān)聽(tīng)類,并在所述安卓系統(tǒng)上注冊(cè)對(duì)所述霍爾器件事件的監(jiān)聽(tīng),以便于霍爾器件事件監(jiān)聽(tīng)類對(duì)所述霍爾器件事件的監(jiān)聽(tīng)。
[0016]如上所述,本發(fā)明的一種安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)方法和系統(tǒng),未采用傳統(tǒng)的霍爾器件的模擬按鍵的方式實(shí)現(xiàn)安卓設(shè)備的開(kāi)合蓋,而是采用在電源管理服務(wù)里增加針對(duì)霍爾器件的響應(yīng)處理,簡(jiǎn)化了處理流程,并且不用對(duì)模擬按鍵時(shí)間進(jìn)行守護(hù),安卓設(shè)備的系統(tǒng)可直接進(jìn)入深度休眠,降低了安卓設(shè)備的能耗,提高了安卓設(shè)備的效率。
【附圖說(shuō)明】
[0017]圖1顯示為本發(fā)明實(shí)施例公開(kāi)的一種安卓設(shè)備開(kāi)合蓋實(shí)現(xiàn)方法的流程示意圖。
[0018]圖2顯示為本發(fā)明實(shí)施例公開(kāi)的一種安卓設(shè)備開(kāi)合蓋實(shí)現(xiàn)系統(tǒng)的結(jié)構(gòu)示意圖。
[0019]元件標(biāo)號(hào)說(shuō)明
[0020]S10 ?S30 步驟
[0021]200安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)系統(tǒng)
[0022]210檢測(cè)判斷模塊
[0023]220喚醒模塊
[0024]230電源管理服務(wù)啟動(dòng)模塊
[0025]240監(jiān)聽(tīng)和邏輯判斷模塊
【具體實(shí)施方式】
[0026]以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū)所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。需說(shuō)明的是,在不沖突的情況下,以下實(shí)施例及實(shí)施例中的特征可以相互組合。
[0027]請(qǐng)參閱附圖。需要說(shuō)明的是,以下實(shí)施例中所提供的圖示僅以示意方式說(shuō)明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0028]實(shí)施例1
[0029]本實(shí)施例公開(kāi)了一種安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)方法,采用了霍爾器件的感應(yīng)來(lái)實(shí)現(xiàn)安卓設(shè)備的開(kāi)合蓋。進(jìn)一步地,安卓設(shè)備利用霍爾器件的感應(yīng)實(shí)現(xiàn)開(kāi)合蓋的方式多種多樣,本實(shí)施例采用的是在安卓設(shè)備的電源管理服務(wù)(Power Manager Service)中增加對(duì)霍爾器件的響應(yīng)處理,從而實(shí)現(xiàn)安卓設(shè)備的開(kāi)合蓋。
[0030]進(jìn)一步地,安卓設(shè)備是指使用安卓操作系統(tǒng)的設(shè)備,設(shè)備包括存儲(chǔ)器、存儲(chǔ)器控制器、一個(gè)或多個(gè)處理器(CPU)、接口電路、RF(射頻)電路、音頻電路、揚(yáng)聲器、麥克風(fēng)、輸入/輸出(I/O)子系統(tǒng)、觸摸顯示屏、其他輸出或控制設(shè)備,以及外部端口。這些組件通過(guò)一條或多條通信總線或信號(hào)線進(jìn)行通信。設(shè)備可以是任何便攜式電子設(shè)備,包括但不限于筆記本電腦、平板電腦、智能手機(jī)、多媒體播放器、個(gè)人數(shù)字助理(PDA)等等,還可能包括其中兩項(xiàng)或多項(xiàng)的組合。應(yīng)當(dāng)理解,本實(shí)施例中列舉的設(shè)備只是其中一個(gè)實(shí)例。并且,各種組件可以用硬件、軟件或軟硬件的組合來(lái)實(shí)現(xiàn),包括一個(gè)或多個(gè)信號(hào)處理和/或?qū)S眉呻娐贰?br>[0031]如圖1所示,在安卓設(shè)備處于深度休眠狀態(tài)時(shí),安卓設(shè)備開(kāi)合蓋的實(shí)現(xiàn)方法包括:
[0032]步驟S10,檢測(cè)并判斷霍爾器件事件是否發(fā)生:
[0033]若是,則喚醒所述安卓設(shè)備中的系統(tǒng)服務(wù)進(jìn)程,并跳轉(zhuǎn)至步驟S20 ;
[0034]若否,則繼續(xù)檢測(cè);
[0035]增加底層霍爾器件喚醒安卓系統(tǒng)機(jī)制,即,在安卓系統(tǒng)休眠時(shí),當(dāng)有霍爾器件事件發(fā)生時(shí),也即開(kāi)合蓋操作時(shí),由Linux內(nèi)核將安卓設(shè)備中的系統(tǒng)服務(wù)進(jìn)程喚醒。由于安卓系統(tǒng)是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),因此由Linux內(nèi)核將安卓設(shè)備中的系統(tǒng)服務(wù)進(jìn)程喚醒,相當(dāng)于從最底層將安卓系統(tǒng)喚醒。
[0036]步驟S20,所述安卓設(shè)備的系統(tǒng)服務(wù)進(jìn)程轉(zhuǎn)為運(yùn)行態(tài),并啟動(dòng)電源管理服務(wù):
[0037]系統(tǒng)進(jìn)程(System Server process)轉(zhuǎn)為運(yùn)行態(tài),運(yùn)行在該進(jìn)程中的電源管理服務(wù)(Power Manager Service)被啟動(dòng)。
[0038]步驟S30,通過(guò)所述電源管理服務(wù)監(jiān)聽(tīng)所述霍爾器件事件,并進(jìn)行邏輯判斷:
[0039]當(dāng)判斷所述霍爾器件事件為霍爾器件打開(kāi),則調(diào)用系統(tǒng)喚醒方法喚醒所述安卓設(shè)備;
[0040]當(dāng)判斷所述霍爾器件事件為所述霍爾器件關(guān)閉,則調(diào)用系統(tǒng)休眠方法,讓所述安卓設(shè)備進(jìn)入休眠狀態(tài)。
[0041]在監(jiān)聽(tīng)所述霍爾器件事件前,電源管理服務(wù)的構(gòu)造函數(shù)中需添加對(duì)霍爾器件事件的監(jiān)聽(tīng),即添加對(duì)霍爾器件事件的處理邏輯。即需要按照如下進(jìn)行設(shè)置:
[0042]在所述電源管理服務(wù)中實(shí)例化一個(gè)傳感器管理器對(duì)象:
[0043]在電源管理服務(wù)Power Manager Service類的system Ready方法中添加處理邏輯,獲得安卓系統(tǒng)的傳感器管理器對(duì)象mSensorManager。
[0044]從所述傳感器管理器對(duì)象mSensorManager中獲取所述霍爾器件對(duì)應(yīng)的霍爾器件對(duì)象,實(shí)現(xiàn)霍爾器件事件監(jiān)聽(tīng)類myHallListener。
[0045]在所述安卓系統(tǒng)上注冊(cè)對(duì)所述霍爾器件事件的監(jiān)聽(tīng):
[0046]調(diào)用安卓系統(tǒng)的傳感器管理器對(duì)象mSensorManager的