出的用戶操作的手勢不在預先設(shè)置的FiT的定義手勢中時,則判斷出獲得 的用戶操作的報點參數(shù)不滿足預先設(shè)置的FiT的定義手勢。
[0156] 其中,圖11為本發(fā)明移動終端的單擊動作識別方法的流程圖,如圖11所示,包 括:
[0157] S31、將該移動終端的觸控區(qū)分割為普通分區(qū)和特殊分區(qū)。
[0158] S32、當在該特殊分區(qū)上感應到觸控操作時,獲取該觸控操作的觸摸時間和移動距 離。
[0159] 移動終端可通過驅(qū)動層接收觸控操作。觸控操作通常為點擊、雙擊、滑動、選中等 操作,每一觸控操作由一個或多個觸控點組成,因此移動終端可以通過偵測觸控操作的觸 控點落入的區(qū)域,來判斷觸控操作是發(fā)生在普通分區(qū)還是特殊分區(qū)。具體實現(xiàn)上,移動終端 的驅(qū)動層獲取觸控操作的觸控點的坐標,判斷觸控點的坐標落入了哪個分區(qū)。當觸控點的 坐標落入特殊分區(qū)時,則認為在特殊分區(qū)上感應到了觸控操作。當觸控操作的觸控點落入 特殊分區(qū)時,移動終端的驅(qū)動層則通過特殊分區(qū)所對應的輸入設(shè)備上報該觸控點。
[0160] 在該步驟中,該觸控操作是一個完整的動作,從接收到用戶在特殊分區(qū)上的的按 壓信號到接收到抬起信號時結(jié)束。
[0161] 該觸摸操作的觸摸時間T可根據(jù)該觸控操作的開始觸摸點A(X。,Y。)的時刻tl和 結(jié)束觸摸點B (X1, Y1)的時刻t2獲得。
[0162] 該觸摸操作的移動距離D可根據(jù)該觸控操作的開始觸摸點A (X。,Y。)到結(jié)束觸摸點 B(X1J1)運動軌跡獲得。
[0163] 在框架(Framework)層接收到上報事件(上報事件包括輸入設(shè)備以及觸控點各項 參數(shù)等)后,首先根據(jù)輸入設(shè)備的命名,識別是哪一個區(qū)域,如上一步驟中驅(qū)動層(kernel) 識別是在特殊分區(qū)觸控,則驅(qū)動層上報到框架層的輸入設(shè)備是inputl,而不是用inputO來 上報,即,框架層不需要判斷當前觸控點在哪一個分區(qū),也不需要判斷分區(qū)的大小和位置, 這些判斷操作在驅(qū)動層上完成,并且,驅(qū)動層除了上報具體是哪一個輸入設(shè)備,還會上報該 觸控點的各項參數(shù)至框架層,例如按壓時間,位置坐標,壓力大小等等。
[0164] S33、判斷該觸控操作的移動距離是否小于等于預設(shè)距離閥值,如果是,則執(zhí)行步 驟 S34。
[0165] 該預設(shè)距離閥值可根據(jù)用戶需要設(shè)置,如可設(shè)置為2毫米。在該步驟中,若該觸 控操作的移動距離小于等于預設(shè)距離閥值,則認為該觸控操作滿足單擊動作的其中一個條 件;若該觸控操作的移動距離大于預設(shè)距離閥值,則認為該觸控操作的移動距離過大,不會 將該觸控操作認為是單擊動作,該觸控操作可能是移動操作等。
[0166] S34、判斷該觸控操作的觸摸時間是否小于等于預設(shè)時間閥值,如果是,則執(zhí)行步 驟 S35〇
[0167] 該預設(shè)時間閥值可根據(jù)用戶需要設(shè)置。在該步驟中,若該觸控操作的觸摸時間T 小于等于預設(shè)時間閥值,則認為該觸控操作滿足單擊動作的第二個條件;若該觸控操作的 觸摸時間T大于預設(shè)時間閥值,則認為該觸控操作的觸摸時間過長,不會將該觸控操作認 為是單擊,該觸控操作有可能是長按或選中等其他操作。
[0168] S35、確定該觸控操作為單擊動作。
[0169] 當該觸控操作的移動距離小于等于預設(shè)距離閥值且該觸控操作的觸摸時間小于 等于預設(shè)時間閥值時,確定該觸控操作為單擊動作,可準確的對觸控操作進行判定,避免誤 判斷。
[0170] 其中,如圖12所示,本實施例中的虛擬邊框區(qū)域的滑動識別方法同時適用于C區(qū) 的兩種劃分方式,具體包括以下步驟:
[0171] 501、在虛擬邊框區(qū)域內(nèi)感測與觸點并發(fā)的觸控事件。
[0172] 502、實時上報上述觸點的當前坐標位置,并根據(jù)該觸點的初始坐標位置和當前坐 標位置判斷與觸點并發(fā)的觸控事件是否屬于滑動事件。
[0173] 503、若判定觸控事件屬于滑動事件,則進一步判斷該滑動事件的方向?qū)傩浴?br>[0174] 如圖13所示,在采用固定方式劃分C區(qū)時,C區(qū)的滑動識別方法包括以下步驟:
[0175] 601、定義C區(qū)的位置和寬度,將觸摸屏的整個可觸摸區(qū)域劃分為位于兩側(cè)邊緣的 C區(qū)和位于中間的A區(qū)。
[0176] 602、在觸摸屏驅(qū)動初始化時,通過input_allocate_device()分配兩個虛擬輸入 設(shè)備(分別定義為:input0和inputl),并通過input_register_device()注冊這兩個輸入 設(shè)備,其中inputO對應于C區(qū)、input 1對應于A區(qū)。
[0177] 在注冊好該兩個虛擬輸入設(shè)備后,上層將根據(jù)驅(qū)動層上報的虛擬輸入設(shè)備的命 名,識別出當前用戶觸摸區(qū)域是C區(qū)還是A區(qū),不同的分區(qū),上層處理方式不同,步驟604中 將會介紹。
[0178] 本發(fā)明所述的上層通常指框架(Framework)層、應用層等,在移動終端的系統(tǒng)中, 例如android、IOS等定制系統(tǒng),通常包括底層(物理層,驅(qū)動層)以及上層(框架層,應用 層),信號流的走向為:物理層(觸控面板)接收到用戶的觸控操作,物理按壓轉(zhuǎn)變?yōu)殡娦?號TP,將TP傳遞至驅(qū)動層,驅(qū)動層對按壓的位置進行解析,得到位置點的具體坐標,持續(xù) 時間,壓力等參數(shù),將該參數(shù)上傳至框架層,框架層與驅(qū)動層的通信可通過相應的接口來實 現(xiàn),框架層接收到驅(qū)動層的輸入設(shè)備(input),解析該輸入設(shè)備,從而選擇響應或不響應該 輸入設(shè)備,并將有效的輸入向上傳遞給具體哪一個應用,以滿足應用層根據(jù)不同的事件執(zhí) 行不同的應用操作。
[0179] 603、當C區(qū)感測有與觸點并發(fā)的觸控事件時,通過虛擬輸入設(shè)備inputO向上層上 報該觸點的初始坐標位置(downX,downY)和初始按下時刻信息(downTime),上層(系統(tǒng)框 架層或者應用層)記錄下該信息作為后續(xù)的滑動判斷依據(jù)。如圖14所示,觸摸屏的中間部 分為A區(qū),左右兩側(cè)的窄邊為C區(qū),灰色原點代表C區(qū)中的觸點。
[0180] 觸控操作通常為點擊、滑動等操作,每一觸控操作由一個或多個觸點組成,因此移 動終端可以通過偵測觸控操作的觸點落入的區(qū)域,來判斷觸控操作是發(fā)生在C區(qū)還是A區(qū)。
[0181] 在框架(Framework)層接收到上報事件(上報事件包括輸入設(shè)備以及觸控點各項 參數(shù)等)后,首先根據(jù)輸入設(shè)備的命名,識別是哪一個區(qū)域,如驅(qū)動層(kernel)識別是在C 區(qū)觸控,則驅(qū)動層上報到框架層的輸入設(shè)備是inputO,而不是用inputl來上報,即,框架層 不需要判斷當前觸點在哪一個分區(qū),也不需要判斷分區(qū)的大小和位置,這些判斷操作在驅(qū) 動層上完成,并且,驅(qū)動層除了上報具體是哪一個輸入設(shè)備,還會上報該觸點的各項參數(shù)至 框架層,例如按壓時間,位置坐標,壓力大小等等。
[0182] 604、在上述觸點移動過程中,虛擬輸入設(shè)備inputO按照預設(shè)的周期向上層實時 上報該觸點的當前坐標位置(currentX, currentY);同時,上層根據(jù)觸點的初始坐標位置 和當前坐標位置信息判斷觸控事件是否為滑動事件,若是則進一步判斷其方向?qū)傩?,并?jù) 此進行預設(shè)的特殊處理,特殊處理方式如忽略、生成特效等。
[0183] 為實現(xiàn)較為準確的判斷,虛擬輸入設(shè)備inputO的上報周期可以設(shè)定為較短時間 值,比如1/85秒。
[0184] 在步驟604中,判斷與觸點并發(fā)的觸控事件是否為滑動事件的具體方法為:判斷 觸點當前位置與初始位置的移動距離;若該移動距離超過預設(shè)閾值,則判定該觸控事件為 滑動事件,否則,判定該觸控事件不是滑動事件。
[0185] 觸點的移動距離的計算公式為:
[0187] 由于C區(qū)為虛擬邊框區(qū)域,一般設(shè)置的比較窄,X軸方向的移動距離減小,可以忽 略不計,因而上述觸點的移動距離的計算公式可以簡化為:
[0188] 移動距離=I currentY - downY I。
[0189] 其中,根據(jù)獲得的用戶操作的報點參數(shù)判斷出該用戶操作是有效操作包括但不限 于:
[0190] 預先指定的傳感器采集的用戶操作的數(shù)值大于或等于相應的預設(shè)閾值;或者,
[0191] 移動終端處于該FiT功能的可操作狀態(tài)。
[0192] 需要說明的是,不同的傳感器對應的預設(shè)閾值是不同的,預設(shè)閾值可以根據(jù)實際 情況進行設(shè)定。其中,可操作狀態(tài)可以借助于特定的傳感器來進行判斷,如移動終端處于衣 兜或包里的時候,是不可操作狀態(tài);如移動終端正面朝向用戶時為可操作狀態(tài)。舉例說明, 如預先指定的傳感器為壓力傳感器時,壓力值大于預設(shè)的壓力閾值,這樣是為了防止由于 輕微觸碰導致的誤觸;又如預先指定的傳感器為光線傳感器時,可以判斷移動終端此時不 處于口袋防誤觸模式;再如,息屏狀態(tài)下邊緣拍照時,此時要求移動終端內(nèi)置的加速度不超 過預設(shè)加速度閾值,"握持解鎖"要求移動終端正面朝向用戶,偏離角度不超過預設(shè)偏離角 度閾值等。
[0193] 步驟404 :觸發(fā)與該用戶操作對應的FiT功能。
[0194] 其中,F(xiàn)iT功能包括但不限于:邊緣滑動啟動應用,或者邊緣滑動切換應用,或者 邊緣反復滑動移動終端加速,或者雙邊滑動調(diào)節(jié)亮度,或者者雙邊滑動調(diào)節(jié)音量,或者握持 解鎖,或者握一握截屏/啟動單手操作,或者邊緣點擊拍照,或者邊緣點擊拍照收藏圖片, 或者橫屏雙手握持啟動相機,或者其它功能。
[0195] 進一步地,當判斷出獲得的用戶操作的報點不滿足預先設(shè)置的FiT的定義手勢或 者判斷出該用戶操作不是有效操作時,該方法還包括:不響應用戶操作。
[0196] 本發(fā)明方法中,通過實時監(jiān)測已開啟的感應區(qū)域以及根據(jù)已開啟的感應區(qū)域的用 戶操作判斷用戶操作是否為有效操作,只有為有效操作時才觸發(fā)與該用戶操作對應的FiT 功能,提高了 FiT的易用性并降低了耗電量。另外,通過對用戶操作進行判斷,避免了誤操 作的發(fā)生。
[0197] 舉例說明,首先,現(xiàn)有技術(shù)中,利用FiT"握持解鎖"功能需要先用電源鍵喚醒屏幕, 然后在通過"握持密碼"解鎖。采用本發(fā)明的上述方法,可以實現(xiàn)息屏狀態(tài)下直接通過"握 持密碼"解鎖,省掉了點亮屏幕的操作。當檢測到移動終端邊緣C區(qū)(預先設(shè)置的感應區(qū) 域)有報點上傳,判斷是否滿足"握持解鎖"的條件:1)報點數(shù)量與錄入握持密碼所記錄的 數(shù)量相等;2)報點坐標與錄入握持密碼所記錄的位置偏移量小于預設(shè)閾值;3)報點持續(xù)時 間超過與預設(shè)的時間閾值。若滿足上述三個調(diào)焦則判斷用戶的操作滿足"握持解鎖"手勢 定義。
[0198] 進一步的,可以利用光線傳感器,陀螺儀等傳感器判斷息屏狀態(tài)下的"握持解鎖" 操作有效性,從而屏蔽是用戶誤操作,其中判斷條件為:1)距離傳感器檢測此時移動終端 如果被遮擋,則此時移動終端處于口袋防誤觸模式,屏蔽用戶此時的解鎖操作;2)陀螺儀 傳感器結(jié)合前置攝像頭,判斷此時移動終端相對于用戶所處的方位是否處于可操作位置, 如果不處