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