本發(fā)明涉及輸入法技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種在系統(tǒng)保護模式下的輸入方法和裝置,還涉及一種移動終端。
背景技術(shù):
一些移動終端出于安全考慮,設(shè)置了相應(yīng)的系統(tǒng)保護模式,以保護用戶在網(wǎng)上交易、網(wǎng)上支付、銀行查詢等等場合的安全。例如,360手機的財產(chǎn)隔離系統(tǒng),該系統(tǒng)一方面通過內(nèi)置安全應(yīng)用商店的方式來防止盜取木馬、仿冒應(yīng)用的入侵,從源頭上保證了應(yīng)用的來源安全;另一方面還通過構(gòu)建專門網(wǎng)絡(luò)通道,對賬戶密碼等數(shù)據(jù)進行加密傳輸,確保數(shù)據(jù)在傳輸過程中的安全。同時,還將金融理財?shù)葦?shù)據(jù)進行系統(tǒng)隔離,禁止惡意應(yīng)用非法讀取,從根本上保障了用戶支付環(huán)境的安全。
如果安裝了多種輸入法,則在系統(tǒng)保護模式下要輸入密碼時,可能會直接調(diào)用用戶預(yù)設(shè)的第三方輸入法,從而可能存在密碼泄露的風(fēng)險,安全性有待提高。
另一方面,這些安全模式通常是基于“沙箱”隔離技術(shù),但是由于很多應(yīng)用都要求獲取沙箱之外的權(quán)限,當(dāng)用戶下載安裝一個應(yīng)用時,可能將被要求給予該應(yīng)用程序打破沙箱的權(quán)限。由于用戶想使用該應(yīng)用的全部功能,因而會被引導(dǎo)賦予該應(yīng)用相關(guān)權(quán)限,導(dǎo)致沙箱的安全隔離沒有保證,安全性有待提高。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的旨在至少能解決上述的技術(shù)缺陷之一,特別是安全性不高的技術(shù)缺陷。
本發(fā)明提供一種在系統(tǒng)保護模式下的輸入方法,其特征在于,包括如下步驟:
監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為,系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問;
當(dāng)輸入法接口被調(diào)用時,獲取輸入控件的輸入文本類型;
如果所述輸入文本類型為密碼,啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于所述安全空間。
在其中一個實施例中,所述預(yù)定應(yīng)用包括支付相關(guān)的應(yīng)用、理財相關(guān)的應(yīng)用和銀行相關(guān)的應(yīng)用中的至少其中一種。
在其中一個實施例中,所述運行資源包括該應(yīng)用程序本身、該應(yīng)用配置數(shù)據(jù)和該應(yīng)用用戶數(shù)據(jù)其中至少一種,所述安全空間包括存儲空間。
在其中一個實施例中,所述運行資源包括運行保護策略,所述安全空間包括存儲空間及其相應(yīng)的運行保護策略配置環(huán)境。
在其中一個實施例中,所述系統(tǒng)為安卓系統(tǒng),所述輸入法接口為Inp utMethodManager。
在其中一個實施例中,所述系統(tǒng)為安卓系統(tǒng),所述輸入控件為EditTe xt控件,通過獲取EditText控件的inputType屬性以獲取所述輸入文本類型;如果inputType="textPassword"或inputType="textVisiblePassword",則所述輸入文本類型為密碼。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為不可到達外部網(wǎng)絡(luò)的輸入法應(yīng)用。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為具備聯(lián)網(wǎng)功能但是被系統(tǒng)設(shè)置為處于離線狀態(tài)的輸入法應(yīng)用。
在其中一個實施例中,所述啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用包括:
在密碼輸入期間斷開所述系統(tǒng)預(yù)設(shè)的輸入法與外部網(wǎng)絡(luò)的通信連接,完成密碼輸入時恢復(fù)該通信連接。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為沒有聯(lián)網(wǎng)功能的輸入法應(yīng)用。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:
在被調(diào)用后展示初始化的虛擬鍵盤;
在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變所述虛擬鍵盤的鍵位布局。
在其中一個實施例中,所述初始化的虛擬鍵盤的鍵位布局為隨機生成。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:
在被調(diào)用后展示初始化的虛擬鍵盤;
接收到設(shè)定的切換指令;
在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變所述虛擬鍵盤的鍵位布局。
在其中一個實施例中,所述設(shè)定的切換指令包括由設(shè)定物理鍵盤的按壓事件生成的指令、由指紋傳感器的觸按事件生成的指令和由所述虛擬鍵盤上設(shè)定鍵位的觸按事件生成的指令中的至少一項。
在其中一個實施例中,所述設(shè)定的鍵盤觸按事件為數(shù)字鍵位或字母鍵位的觸按事件。
在其中一個實施例中,所述隨機改變所述虛擬鍵盤的鍵位布局為:隨機改變所述虛擬鍵盤上數(shù)字鍵位或字母鍵位的鍵位布局。
本發(fā)明還提供一種在系統(tǒng)保護模式下的輸入裝置,其包括:
監(jiān)聽模塊,用于監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為,系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問;
獲取模塊,用于當(dāng)輸入法接口被調(diào)用時,獲取輸入控件的輸入文本類型;
啟用模塊,用于如果所述輸入文本類型為密碼,啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于所述安全空間。
在其中一個實施例中,所述預(yù)定應(yīng)用包括支付相關(guān)的應(yīng)用、理財相關(guān)的應(yīng)用和銀行相關(guān)的應(yīng)用中的至少其中一種。
在其中一個實施例中,所述運行資源包括該應(yīng)用程序本身、該應(yīng)用配置數(shù)據(jù)和該應(yīng)用用戶數(shù)據(jù)其中至少一種,所述安全空間包括存儲空間。
在其中一個實施例中,所述運行資源包括運行保護策略,所述安全空間包括存儲空間及其相應(yīng)的運行保護策略配置環(huán)境。
在其中一個實施例中,所述系統(tǒng)為安卓系統(tǒng),所述輸入法接口為Inp utMethodManager。
在其中一個實施例中,所述系統(tǒng)為安卓系統(tǒng),所述輸入控件為EditTe xt控件,所述獲取模塊通過獲取EditText控件的inputType屬性以獲取所述輸入文本類型;如果inputType="textPassword"或inputType="textVisibl ePassword",則所述輸入文本類型為密碼。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為不可到達外部網(wǎng)絡(luò)的輸入法應(yīng)用。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為具備聯(lián)網(wǎng)功能但是被系統(tǒng)設(shè)置為處于離線狀態(tài)的輸入法應(yīng)用。
在其中一個實施例中,所述啟用模塊用于:在密碼輸入期間斷開所述系統(tǒng)預(yù)設(shè)的輸入法與外部網(wǎng)絡(luò)的通信連接,完成密碼輸入時恢復(fù)該通信連接。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為沒有聯(lián)網(wǎng)功能的輸入法應(yīng)用。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:
在被調(diào)用后展示初始化的虛擬鍵盤;
在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變所述虛擬鍵盤的鍵位布局。
在其中一個實施例中,所述初始化的虛擬鍵盤的鍵位布局為隨機生成。
在其中一個實施例中,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:
在被調(diào)用后展示初始化的虛擬鍵盤;
接收到設(shè)定的切換指令;
在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變所述虛擬鍵盤的鍵位布局。
在其中一個實施例中,所述設(shè)定的切換指令包括由設(shè)定物理鍵盤的按壓事件生成的指令、由指紋傳感器的觸按事件生成的指令和由所述虛擬鍵盤上設(shè)定鍵位的觸按事件生成的指令中的至少一項。
在其中一個實施例中,所述設(shè)定的鍵盤觸按事件為數(shù)字鍵位或字母鍵位的觸按事件。
在其中一個實施例中,所述隨機改變所述虛擬鍵盤的鍵位布局為:隨機改變所述虛擬鍵盤上數(shù)字鍵位或字母鍵位的鍵位布局。
本發(fā)明還提供一種移動終端,其包括:
觸敏顯示器;
一個或多個處理器;
存儲器;
一個或多個應(yīng)用程序,其中所述一個或多個應(yīng)用程序被存儲在所述存儲器中并被配置為由所述一個或多個處理器執(zhí)行,所述一個或多個程序配置用于執(zhí)行上述任一實施例所述的在系統(tǒng)保護模式下的輸入方法。
上述的在系統(tǒng)保護模式下的輸入方法、裝置和移動終端,監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為,系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問;當(dāng)輸入法接口被調(diào)用時,獲取輸入控件的輸入文本類型;如果所述輸入文本類型為密碼,啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于所述安全空間。在系統(tǒng)保護模式下,如果監(jiān)聽到對輸入法接口的調(diào)用行為,且輸入控件的輸入文本類型為密碼,則證明用戶正要輸入密碼,無論系統(tǒng)默認調(diào)用(由用戶預(yù)設(shè)置的)的輸入法應(yīng)用是什么,此時都會自動啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用。這樣,即使系統(tǒng)默認調(diào)用的輸入法應(yīng)用為第三方應(yīng)用,也可以避免密碼泄露風(fēng)險,提高了安全性。
在本發(fā)明中,系統(tǒng)保護模式是通過系統(tǒng)的多用戶模式實現(xiàn)的。即系統(tǒng)處于管理員賬號登陸時為系統(tǒng)普通模式,系統(tǒng)處于普通用戶賬號登錄時為系統(tǒng)保護模式,系統(tǒng)從系統(tǒng)普通模式進入系統(tǒng)保護模式即相當(dāng)于系統(tǒng)從管理員模式切換到普通用戶模式。由于多用戶模式可以實現(xiàn)用戶間一定的數(shù)據(jù)隔離,從而可以實現(xiàn)用戶在系統(tǒng)保護模式下的操作安全,實現(xiàn)安全隔離。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為一個實施例的在系統(tǒng)保護模式下的輸入方法流程圖;
圖2為一個實施例的在系統(tǒng)保護模式下的輸入裝置模塊圖;
圖3示出的是與本發(fā)明實施例提供的移動終端相關(guān)的手機的部分結(jié)構(gòu)的框圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述。
在本發(fā)明的說明書和權(quán)利要求書及上述附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個操作,但是應(yīng)該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行,操作的序號如101、102等,僅僅是用于區(qū)分開各個不同的操作,序號本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設(shè)備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無線信號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示器的蜂窩或其他通信設(shè)備;PCS(Personal Communications Service,個人通信系統(tǒng)),其可以組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個人數(shù)字助理),其可以包括射頻接收器、尋呼機、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或GPS(Global Positioning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計算機或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計算機或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運輸、安裝在交通工具(航空、海運和/或陸地)中的,或者適合于和/或配置為在本地運行,和/或以分布形式,運行在地球和/或空間的任何其他位置運行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是PDA、MID(Mobile Internet Device,移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可以是智能電視、機頂盒等設(shè)備。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的遠端網(wǎng)絡(luò)設(shè)備,其包括但不限于計算機、網(wǎng)絡(luò)主機、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云。在此,云由基于云計算(Cloud Computing)的大量計算機或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。本發(fā)明的實施例中,遠端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動通信、基于TCP/IP、UDP協(xié)議的計算機網(wǎng)絡(luò)通信以及基于藍牙、紅外傳輸標(biāo)準(zhǔn)的近距無線傳輸方式。
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
在以下的描述中,系統(tǒng)是移動終端的操作系統(tǒng),例如安卓系統(tǒng)、iOS移動操作系統(tǒng)等等。在以下的描述中,以安卓系統(tǒng)作為示例性說明,移動終端可以是手機、平板電腦等智能終端。
圖1為一個實施例的在系統(tǒng)保護模式下的輸入方法流程圖。
本發(fā)明實施例中提供本發(fā)明提供一種在系統(tǒng)保護模式下的輸入方法,其特征在于,包括如下步驟:
步驟S100:監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為。系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問。
在系統(tǒng)保護模式下,預(yù)定應(yīng)用將會在運行保護策略下進行嚴(yán)格的安全檢測,一切有關(guān)資金的交易操作、支付操作都會受到嚴(yán)格監(jiān)控,并且會嚴(yán)密保護用戶的個人信息,防止例如聊天記錄、短信驗證碼等等的用戶信息泄露。其中,預(yù)定應(yīng)用包括支付相關(guān)的應(yīng)用(例如微信APP、支付寶APP)、理財相關(guān)的應(yīng)用(例如陸金所APP)和銀行相關(guān)的應(yīng)用(例如工商銀行APP)中的至少其中一種,以保護用戶的資金安全和信息安全,當(dāng)然預(yù)定應(yīng)用還可以包括所有安裝于系統(tǒng)保護模式下安全空間的應(yīng)用。
這里該的運行資源,既可以是理解為該應(yīng)用程序本身,也可以理解為該應(yīng)用配置數(shù)據(jù)(應(yīng)用程序的配置數(shù)據(jù)),還可以理解為該應(yīng)用用戶數(shù)據(jù)(用戶的個人數(shù)據(jù)),在這些情況下,該的安全空間就可以理解為存儲空間。當(dāng)然,運行資源還可以理解為運行保護策略,該的安全空間就可以理解為存儲空間及其相應(yīng)的運行保護策略配置環(huán)境,運行保護策略配置環(huán)境為:在運行該應(yīng)用時啟動殺毒、查殺木馬等等安全保護措施的配置環(huán)境。
在傳統(tǒng)的技術(shù)中,系統(tǒng)保護模式可以是以常規(guī)“沙箱”隔離技術(shù)實現(xiàn)。但是在本實施例中,是以多用戶模式來實現(xiàn)的。安卓系統(tǒng)中支持多用戶模式,與WINDOWS系統(tǒng)的多用戶模式類似,不同用戶登陸下的系統(tǒng)中的用戶數(shù)據(jù)相互獨立,相互間不受影響。因此,系統(tǒng)處于管理員賬號(通常UID=0)登陸時為系統(tǒng)普通模式,系統(tǒng)處于普通用戶賬號(例如UID=10)登錄時為系統(tǒng)保護模式,系統(tǒng)從系統(tǒng)普通模式進入系統(tǒng)保護模式即相當(dāng)于系統(tǒng)從管理員模式切換到普通用戶模式。由于多用戶模式可以實現(xiàn)用戶間一定的數(shù)據(jù)隔離,從而可以實現(xiàn)用戶在保護模式下的系統(tǒng)安全(應(yīng)用安裝安全、交易安全、用戶信息安全),實現(xiàn)安全隔離,在一定情況下比“沙箱”隔離技術(shù)更加安全。
因此,該系統(tǒng)從普通模式切換到保護模式的過程相當(dāng)于該系統(tǒng)從管理員賬號切換到普通用戶賬號。在安卓系統(tǒng)中,通過調(diào)用ActivityManager類中的switchUser()方法以從管理員賬號切換到普通用戶賬號。在系統(tǒng)處于系統(tǒng)保護模式相對應(yīng)的普通用戶賬號登錄狀態(tài)時,監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為。
若該系統(tǒng)為安卓系統(tǒng),則該輸入法接口為InputMethodManager(輸入法管理器)。Android平臺自1.5版本之后開放了輸入法框架(Input Met hod Framework,IMF),IMF是Android平臺的特色設(shè)計。它的出現(xiàn),為誕生不帶實體鍵盤的設(shè)備提供了可能。同時,IMF開放了Android平臺輸入法的開發(fā)接口,為Android平臺的輸入法提供了可擴展性。
Android平臺的IMF按照功能分為三個主要模塊,分別為:客戶端控件(包括輸入控件),輸入法管理器(IMM),以及輸入法應(yīng)用(IME)??蛻舳丝丶?,是指具有文字編輯功能的系統(tǒng)控件(如EditText控件),是平臺內(nèi)部輸入法應(yīng)用人機交互的起點。輸入法管理器,是Android平臺的底層基礎(chǔ)服務(wù)之一,負責(zé)管理輸入法,包括輸入法的安裝、注冊、激活等。輸入法應(yīng)用,則是指平臺內(nèi)預(yù)置或者后續(xù)安裝的輸入法程序。
客戶端控件以EditText為例,當(dāng)客戶端控件接收到焦點時,啟動輸入法應(yīng)用并顯示虛擬鍵盤;而失去焦點時,則隱藏鍵盤。這類操作屬于客戶端控件與輸入法管理器間的交互。
此外,客戶端控件還可以向輸入法應(yīng)用傳遞文本狀態(tài),包括光標(biāo)位置、文本選擇等;接受并顯示輸入法應(yīng)用反饋的輸入文字。這類交互屬于客戶端控件與輸入法應(yīng)用的交互。
客戶端控件對輸入法服務(wù)和輸入法應(yīng)用的操作,都是通過對InputMe thodManager實例的調(diào)用來實現(xiàn)的。InputMethodManager更像是一個供客戶端控件使用API操作的集合,定義對輸入法應(yīng)用以及輸入法服務(wù)的一系列操作。
可以通過以下代碼實現(xiàn)對InputMethodManager的調(diào)用:
InputMethodManager m=(InputMethodManager)getSystemService(Co ntext.INPUT_METHOD_SERVICE);//得到InputMethodManager。
m.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);//實現(xiàn)輸入法在窗口上切換顯示,如果輸入法在窗口上已經(jīng)顯示,則隱藏,如果隱藏,則顯示輸入法到窗口上。
步驟S200:當(dāng)輸入法接口被調(diào)用時,獲取輸入控件的輸入文本類型。
若該系統(tǒng)為安卓系統(tǒng),則該輸入控件為EditText控件,通過獲取Edi tText控件的inputType屬性以獲取該輸入文本類型。EditText控件有個屬性設(shè)置android:inputType="?"用來設(shè)置文本的類型,用于幫助輸入法顯示合適的鍵盤類型。設(shè)置EditText的InputType屬性,最簡單省事的辦法就是在定義EditText的xml中直接設(shè)置。因此,當(dāng)EditText控件為密碼輸入時,輸入控件的輸入文本類型為密碼類型。
如果inputType="textPassword"或inputType="textVisiblePassword",則該輸入文本類型為密碼。當(dāng)inputType="textPassword"時,則輸入的密碼將以類似“*”或“·”等替代字符的形式顯示;而當(dāng)inputType="textVisibl ePassword"時,則輸入的密碼為可見密碼。
若inputType="number",則表示輸入控件的屬性為數(shù)字類型;若inpu tType="textPassword|number",則表示輸入控件的屬性既是密碼類型,又是數(shù)字類型,因此輸入的密碼只能是數(shù)字密碼,調(diào)用輸入法應(yīng)用(即下述的系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用)的數(shù)字虛擬鍵盤(例如九宮格格式的數(shù)字鍵盤)。
若inputType="text",則表示輸入控件的屬性為普通字符類型;若inp utType="textPassword|text",則表示輸入控件的屬性既是密碼類型,又是普通字符類型(包括數(shù)字、字母、符號),因此輸入的密碼是普通字符密碼,調(diào)用輸入法應(yīng)用(即下述的系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用)的虛擬全鍵盤(例如QWERTY格式的全鍵盤)。
步驟S300:如果該輸入文本類型為密碼,啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于該安全空間。啟用的含義,可以理解為系統(tǒng)通過輸入法ID識別到該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用后,將該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用綁定到該輸入控件(例如EditText控件)。
該系統(tǒng)預(yù)設(shè)的輸入法既可以是系統(tǒng)默認的輸入法,也可以是專門用于密碼輸入時調(diào)用的系統(tǒng)輸入法,也即系統(tǒng)安裝有專門用于密碼輸入時調(diào)用的系統(tǒng)輸入法。為了防止輸入法應(yīng)用受到網(wǎng)絡(luò)上的攻擊和竊取信息,在本實施例中,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為不可到達外部網(wǎng)絡(luò)(例如互聯(lián)網(wǎng))的輸入法應(yīng)用。不可到達外部網(wǎng)絡(luò)的輸入法應(yīng)用,可以有兩種含義。一種是該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用具有聯(lián)網(wǎng)功能,但是在系統(tǒng)監(jiān)聽到是在輸入密碼時將聯(lián)網(wǎng)功能禁用,即該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為具備聯(lián)網(wǎng)功能但是被系統(tǒng)設(shè)置為處于離線狀態(tài)的輸入法應(yīng)用,例如系統(tǒng)在密碼輸入期間斷開該系統(tǒng)預(yù)設(shè)的輸入法與外部網(wǎng)絡(luò)的通信連接,完成密碼輸入時恢復(fù)該通信連接;一種是該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用本身并不具有聯(lián)網(wǎng)功能,即該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為沒有聯(lián)網(wǎng)功能的輸入法應(yīng)用。
該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于該安全空間中,可以是安裝于該安全空間中的某個獨立存儲空間中,例如該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用等系統(tǒng)應(yīng)用安裝于某個特定的文件夾(例如FILE2文件夾)中,而安全模式下的其他第三方應(yīng)用則全部安裝于另外的文件夾(例如FILE1文件夾)中,第三方應(yīng)用無法訪問該特定的文件夾。通過這種安裝方式,使得該輸入法應(yīng)用獨立于其他的第三方應(yīng)用,提高安全性。又或者,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用等系統(tǒng)應(yīng)用與第三方應(yīng)用都安裝于同一文件夾,但是輸入法應(yīng)用等系統(tǒng)應(yīng)用產(chǎn)生的臨時數(shù)據(jù)全部存儲于另外一個獨立的文件夾,其他第三方應(yīng)用沒有訪問權(quán)限,這樣也可以提高輸入法應(yīng)用的安全性。
傳統(tǒng)的一些輸入法應(yīng)用,虛擬鍵盤的鍵位布局是隨機的,這種隨機鍵盤在一定程度上提高了安全性,例如防止某些惡意程序監(jiān)聽鍵盤的擊鍵活動導(dǎo)致密碼泄露,或者防止輸入密碼時旁人窺視。
然而,為了進一步提高安全性,在本發(fā)明的一些實施例中,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:在被調(diào)用后展示初始化的虛擬鍵盤;然后在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變該虛擬鍵盤的鍵位布局。也即用戶每一次觸按虛擬鍵盤,輸入法應(yīng)用都會隨機改變一次鍵位布局,這樣能夠進一步提高安全性。而且,在一些實施例中,該初始化的虛擬鍵盤的鍵位布局也是隨機生成的。
某些用戶可能并不需要這種隨機鍵盤,因此可以提供用戶設(shè)置功能,以使得用戶可以按需開啟或關(guān)閉隨機鍵盤。因此,在一些實施例中,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:在被調(diào)用后展示初始化的虛擬鍵盤;接收到設(shè)定的切換指令(即用于開啟隨機鍵盤的指令);在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變該虛擬鍵盤的鍵位布局。
該設(shè)定的切換指令包括由設(shè)定物理鍵盤的按壓事件生成的指令、由指紋傳感器的觸按事件生成的指令和由該虛擬鍵盤上設(shè)定鍵位的觸按事件生成的指令中的至少一項。例如在開啟了初始化的虛擬鍵盤后,用戶可以通過按壓移動終端的聲量減鍵來開啟隨機鍵盤,或者可以通過觸按移動終端的指紋傳感器來開啟隨機鍵盤,也可以通過觸按虛擬鍵盤上專門設(shè)置的切換按鍵來開啟隨機鍵盤。
由于虛擬鍵盤上通常還會具有一些非文本輸入按鍵,例如返回鍵、刪除鍵、重輸鍵、換行鍵、中/英文切換鍵等等,因此為了方便用戶,提高用戶體驗,該設(shè)定的鍵盤觸按事件可以不包括這些非文本輸入按鍵的觸按事件,也即該設(shè)定的鍵盤觸按事件為數(shù)字鍵位或字母鍵位的觸按事件。這相當(dāng)于,用戶在每一次點擊返回鍵、刪除鍵、重輸鍵、換行鍵、中/英文切換鍵這些非文本輸入按鍵后,輸入法應(yīng)用并不會隨機改變虛擬鍵盤的鍵位布局;而當(dāng)用戶在每一次點擊數(shù)字鍵、字母鍵、符號鍵這些文本輸入按鍵后,輸入法應(yīng)用隨機改變一次虛擬鍵盤的鍵位布局,用戶對這些文本輸入按鍵的每一次點擊之后都幾乎會看到與之前一次不同的鍵位布局。
在一些實施例中,隨機改變虛擬鍵盤的鍵位布局,可能并不是所有鍵位都會改變,也即虛擬鍵盤上的某一部分鍵位的布局是固定不變的,例如刪除鍵、重輸鍵、換行鍵、中/英文切換鍵這些非文本輸入按鍵;改變的只是余下部分鍵位的布局,例如該虛擬鍵盤上數(shù)字鍵位或字母鍵位的鍵位布局。這相當(dāng)于當(dāng)用戶在每一次點擊數(shù)字鍵、字母鍵、符號鍵這些文本輸入按鍵后,輸入法應(yīng)用隨機改變一次這些文本輸入按鍵的鍵位布局,而非文本輸入按鍵的鍵位布局則保持不變。
圖2為一個實施例的在系統(tǒng)保護模式下的輸入裝置模塊圖。
對應(yīng)上述的在系統(tǒng)保護模式下的輸入方法,本發(fā)明還提供一種在系統(tǒng)保護模式下的輸入裝置,其包括:監(jiān)聽模塊100、獲取模塊200和啟用模塊300。
監(jiān)聽模塊100用于監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為,系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問;獲取模塊200用于當(dāng)輸入法接口被調(diào)用時,獲取輸入控件的輸入文本類型;啟用模塊300用于如果該輸入文本類型為密碼,啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于該安全空間。
監(jiān)聽模塊100監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為。系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問。
在系統(tǒng)保護模式下,預(yù)定應(yīng)用將會在運行保護策略下進行嚴(yán)格的安全檢測,一切有關(guān)資金的交易操作、支付操作都會受到嚴(yán)格監(jiān)控,并且會嚴(yán)密保護用戶的個人信息,防止例如聊天記錄、短信驗證碼等等的用戶信息泄露。其中,預(yù)定應(yīng)用包括支付相關(guān)的應(yīng)用(例如微信APP、支付寶APP)、理財相關(guān)的應(yīng)用(例如陸金所APP)和銀行相關(guān)的應(yīng)用(例如工商銀行APP)中的至少其中一種,以保護用戶的資金安全和信息安全,當(dāng)然預(yù)定應(yīng)用還可以包括所有安裝于系統(tǒng)保護模式下安全空間的應(yīng)用。
這里該的運行資源,既可以是理解為該應(yīng)用程序本身,也可以理解為該應(yīng)用配置數(shù)據(jù)(應(yīng)用程序的配置數(shù)據(jù)),還可以理解為該應(yīng)用用戶數(shù)據(jù)(用戶的個人數(shù)據(jù)),在這些情況下,該的安全空間就可以理解為存儲空間。當(dāng)然,運行資源還可以理解為運行保護策略,該的安全空間就可以理解為存儲空間及其相應(yīng)的運行保護策略配置環(huán)境,運行保護策略配置環(huán)境為:在運行該應(yīng)用時啟動殺毒、查殺木馬等等安全保護措施的配置環(huán)境。
在傳統(tǒng)的技術(shù)中,系統(tǒng)保護模式可以是以常規(guī)“沙箱”隔離技術(shù)實現(xiàn)。但是在本實施例中,是以多用戶模式來實現(xiàn)的。安卓系統(tǒng)中支持多用戶模式,與WINDOWS系統(tǒng)的多用戶模式類似,不同用戶登陸下的系統(tǒng)中的用戶數(shù)據(jù)相互獨立,相互間不受影響。因此,系統(tǒng)處于管理員賬號(通常UID=0)登陸時為系統(tǒng)普通模式,系統(tǒng)處于普通用戶賬號(例如UID=10)登錄時為系統(tǒng)保護模式,系統(tǒng)從系統(tǒng)普通模式進入系統(tǒng)保護模式即相當(dāng)于系統(tǒng)從管理員模式切換到普通用戶模式。由于多用戶模式可以實現(xiàn)用戶間一定的數(shù)據(jù)隔離,從而可以實現(xiàn)用戶在保護模式下的系統(tǒng)安全(應(yīng)用安裝安全、交易安全、用戶信息安全),實現(xiàn)安全隔離,在一定情況下比“沙箱”隔離技術(shù)更加安全。
因此,該系統(tǒng)從普通模式切換到保護模式的過程相當(dāng)于該系統(tǒng)從管理員賬號切換到普通用戶賬號。在安卓系統(tǒng)中,通過調(diào)用ActivityManager類中的switchUser()方法以從管理員賬號切換到普通用戶賬號。在系統(tǒng)處于系統(tǒng)保護模式相對應(yīng)的普通用戶賬號登錄狀態(tài)時,監(jiān)聽模塊100監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為。
若該系統(tǒng)為安卓系統(tǒng),則該輸入法接口為InputMethodManager(輸入法管理器)。Android平臺自1.5版本之后開放了輸入法框架(Input Met hod Framework,IMF),IMF是Android平臺的特色設(shè)計。它的出現(xiàn),為誕生不帶實體鍵盤的設(shè)備提供了可能。同時,IMF開放了Android平臺輸入法的開發(fā)接口,為Android平臺的輸入法提供了可擴展性。
Android平臺的IMF按照功能分為三個主要模塊,分別為:客戶端控件(包括輸入控件),輸入法管理器(IMM),以及輸入法應(yīng)用(IME)??蛻舳丝丶?,是指具有文字編輯功能的系統(tǒng)控件(如EditText控件),是平臺內(nèi)部輸入法應(yīng)用人機交互的起點。輸入法管理器,是Android平臺的底層基礎(chǔ)服務(wù)之一,負責(zé)管理輸入法,包括輸入法的安裝、注冊、激活等。輸入法應(yīng)用,則是指平臺內(nèi)預(yù)置或者后續(xù)安裝的輸入法程序。
客戶端控件以EditText為例,當(dāng)客戶端控件接收到焦點時,啟動輸入法應(yīng)用并顯示虛擬鍵盤;而失去焦點時,則隱藏鍵盤。這類操作屬于客戶端控件與輸入法管理器間的交互。
此外,客戶端控件還可以向輸入法應(yīng)用傳遞文本狀態(tài),包括光標(biāo)位置、文本選擇等;接受并顯示輸入法應(yīng)用反饋的輸入文字。這類交互屬于客戶端控件與輸入法應(yīng)用的交互。
客戶端控件對輸入法服務(wù)和輸入法應(yīng)用的操作,都是通過對InputMe thodManager實例的調(diào)用來實現(xiàn)的。InputMethodManager更像是一個供客戶端控件使用API操作的集合,定義對輸入法應(yīng)用以及輸入法服務(wù)的一系列操作。
可以通過以下代碼實現(xiàn)對InputMethodManager的調(diào)用:
InputMethodManager m=(InputMethodManager)getSystemService(Co ntext.INPUT_METHOD_SERVICE);//得到InputMethodManager。
m.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);//實現(xiàn)輸入法在窗口上切換顯示,如果輸入法在窗口上已經(jīng)顯示,則隱藏,如果隱藏,則顯示輸入法到窗口上。
當(dāng)輸入法接口被調(diào)用時,獲取模塊200獲取輸入控件的輸入文本類型。
若該系統(tǒng)為安卓系統(tǒng),則該輸入控件為EditText控件,獲取模塊200通過獲取EditText控件的inputType屬性以獲取該輸入文本類型。EditTex t控件有個屬性設(shè)置android:inputType="?"用來設(shè)置文本的類型,用于幫助輸入法顯示合適的鍵盤類型。設(shè)置EditText的InputType屬性,最簡單省事的辦法就是在定義EditText的xml中直接設(shè)置。因此,當(dāng)EditText控件為密碼輸入時,輸入控件的輸入文本類型為密碼類型。
如果inputType="textPassword"或inputType="textVisiblePassword",則該輸入文本類型為密碼。當(dāng)inputType="textPassword"時,則輸入的密碼將以類似“*”或“·”等替代字符的形式顯示;而當(dāng)inputType="textVisibl ePassword"時,則輸入的密碼為可見密碼。
若inputType="number",則表示輸入控件的屬性為數(shù)字類型;若inpu tType="textPassword|number",則表示輸入控件的屬性既是密碼類型,又是數(shù)字類型,因此輸入的密碼只能是數(shù)字密碼,調(diào)用輸入法應(yīng)用(即下述的系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用)的數(shù)字虛擬鍵盤(例如九宮格格式的數(shù)字鍵盤)。
若inputType="text",則表示輸入控件的屬性為普通字符類型;若inp utType="textPassword|text",則表示輸入控件的屬性既是密碼類型,又是普通字符類型(包括數(shù)字、字母、符號),因此輸入的密碼是普通字符密碼,調(diào)用輸入法應(yīng)用(即下述的系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用)的虛擬全鍵盤(例如QWERTY格式的全鍵盤)。
如果該輸入文本類型為密碼,啟用模塊300啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于該安全空間。啟用的含義,可以理解為啟用模塊300通過輸入法ID識別到該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用后,將該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用綁定到該輸入控件(例如EditText控件)。
該系統(tǒng)預(yù)設(shè)的輸入法既可以是系統(tǒng)默認的輸入法,也可以是專門用于密碼輸入時調(diào)用的系統(tǒng)輸入法,也即系統(tǒng)安裝有專門用于密碼輸入時調(diào)用的系統(tǒng)輸入法。為了防止輸入法應(yīng)用受到網(wǎng)絡(luò)上的攻擊和竊取信息,在本實施例中,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為不可到達外部網(wǎng)絡(luò)(例如互聯(lián)網(wǎng))的輸入法應(yīng)用。不可到達外部網(wǎng)絡(luò)的輸入法應(yīng)用,可以有兩種含義。一種是該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用具有聯(lián)網(wǎng)功能,但是在系統(tǒng)監(jiān)聽到是在輸入密碼時將聯(lián)網(wǎng)功能禁用,即該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為具備聯(lián)網(wǎng)功能但是被系統(tǒng)設(shè)置為處于離線狀態(tài)的輸入法應(yīng)用,啟用模塊300在密碼輸入期間斷開該系統(tǒng)預(yù)設(shè)的輸入法與外部網(wǎng)絡(luò)的通信連接,完成密碼輸入時恢復(fù)該通信連接;一種是該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用本身并不具有聯(lián)網(wǎng)功能,即該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為沒有聯(lián)網(wǎng)功能的輸入法應(yīng)用。
該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于該安全空間中,可以是安裝于該安全空間中的某個獨立存儲空間中,例如該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用等系統(tǒng)應(yīng)用安裝于某個特定的文件夾(例如FILE2文件夾)中,而安全模式下的其他第三方應(yīng)用則全部安裝于另外的文件夾(例如FILE1文件夾)中,第三方應(yīng)用無法訪問該特定的文件夾。通過這種安裝方式,使得該輸入法應(yīng)用獨立于其他的第三方應(yīng)用,提高安全性。又或者,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用等系統(tǒng)應(yīng)用與第三方應(yīng)用都安裝于同一文件夾,但是輸入法應(yīng)用等系統(tǒng)應(yīng)用產(chǎn)生的臨時數(shù)據(jù)全部存儲于另外一個獨立的文件夾,其他第三方應(yīng)用沒有訪問權(quán)限,這樣也可以提高輸入法應(yīng)用的安全性。
傳統(tǒng)的一些輸入法應(yīng)用,虛擬鍵盤的鍵位布局是隨機的,這種隨機鍵盤在一定程度上提高了安全性,例如防止某些惡意程序監(jiān)聽鍵盤的擊鍵活動導(dǎo)致密碼泄露,或者防止輸入密碼時旁人窺視。
然而,為了進一步提高安全性,在本發(fā)明的一些實施例中,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:在被調(diào)用后展示初始化的虛擬鍵盤;然后在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變該虛擬鍵盤的鍵位布局。也即用戶每一次觸按虛擬鍵盤,輸入法應(yīng)用都會隨機改變一次鍵位布局,這樣能夠進一步提高安全性。而且,在一些實施例中,該初始化的虛擬鍵盤的鍵位布局也是隨機生成的。
某些用戶可能并不需要這種隨機鍵盤,因此可以提供用戶設(shè)置功能,以使得用戶可以按需開啟或關(guān)閉隨機鍵盤。因此,在一些實施例中,該系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:在被調(diào)用后展示初始化的虛擬鍵盤;接收到設(shè)定的切換指令(即用于開啟隨機鍵盤的指令);在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變該虛擬鍵盤的鍵位布局。
該設(shè)定的切換指令包括由設(shè)定物理鍵盤的按壓事件生成的指令、由指紋傳感器的觸按事件生成的指令和由該虛擬鍵盤上設(shè)定鍵位的觸按事件生成的指令中的至少一項。例如在開啟了初始化的虛擬鍵盤后,用戶可以通過按壓移動終端的聲量減鍵來開啟隨機鍵盤,或者可以通過觸按移動終端的指紋傳感器來開啟隨機鍵盤,也可以通過觸按虛擬鍵盤上專門設(shè)置的切換按鍵來開啟隨機鍵盤。
由于虛擬鍵盤上通常還會具有一些非文本輸入按鍵,例如返回鍵、刪除鍵、重輸鍵、換行鍵、中/英文切換鍵等等,因此為了方便用戶,提高用戶體驗,該設(shè)定的鍵盤觸按事件可以不包括這些非文本輸入按鍵的觸按事件,也即該設(shè)定的鍵盤觸按事件為數(shù)字鍵位或字母鍵位的觸按事件。這相當(dāng)于,用戶在每一次點擊返回鍵、刪除鍵、重輸鍵、換行鍵、中/英文切換鍵這些非文本輸入按鍵后,輸入法應(yīng)用并不會隨機改變虛擬鍵盤的鍵位布局;而當(dāng)用戶在每一次點擊數(shù)字鍵、字母鍵、符號鍵這些文本輸入按鍵后,輸入法應(yīng)用隨機改變一次虛擬鍵盤的鍵位布局,用戶對這些文本輸入按鍵的每一次點擊之后都幾乎會看到與之前一次不同的鍵位布局。
在一些實施例中,隨機改變虛擬鍵盤的鍵位布局,可能并不是所有鍵位都會改變,也即虛擬鍵盤上的某一部分鍵位的布局是固定不變的,例如刪除鍵、重輸鍵、換行鍵、中/英文切換鍵這些非文本輸入按鍵;改變的只是余下部分鍵位的布局,例如該虛擬鍵盤上數(shù)字鍵位或字母鍵位的鍵位布局。這相當(dāng)于當(dāng)用戶在每一次點擊數(shù)字鍵、字母鍵、符號鍵這些文本輸入按鍵后,輸入法應(yīng)用隨機改變一次這些文本輸入按鍵的鍵位布局,而非文本輸入按鍵的鍵位布局則保持不變。
本發(fā)明實施例還提供了移動終端,如圖3所示,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分,具體技術(shù)細節(jié)未揭示的,請參照本發(fā)明實施例方法部分。該移動終端可以為包括手機、平板電腦、PDA(Personal Digital Assistant,個人數(shù)字助理)、POS(Point of Sales,銷售終端)、車載電腦等任意終端設(shè)備,以移動終端為手機為例:
圖3示出的是與本發(fā)明實施例提供的移動終端相關(guān)的手機的部分結(jié)構(gòu)的框圖。參考圖3,手機包括:射頻(Radio Frequency,RF)電路1510、存儲器1520、輸入單元1530、顯示單元1540、傳感器1550、音頻電路1560、無線保真(wireless-fidelity,Wi-Fi)模塊1570、處理器1580、以及電源1590等部件。本領(lǐng)域技術(shù)人員可以理解,圖3中示出的手機結(jié)構(gòu)并不構(gòu)成對手機的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
下面結(jié)合圖3對手機的各個構(gòu)成部件進行具體的介紹:
RF電路1510可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器1580處理;另外,將設(shè)計上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路1510包括但不限于天線、至少一個放大器、收發(fā)信機、耦合器、低噪聲放大器(Low Noise Amplifier,LNA)、雙工器等。此外,RF電路1510還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動通訊系統(tǒng)(Global System of Mobile communication,GSM)、通用分組無線服務(wù)(General Packet Radio Service,GPRS)、碼分多址(Code Division Multiple Access,CDMA)、寬帶碼分多址(Wideband Code Division Multiple Access,WCDMA)、長期演進(Long Term Evolution,LTE)、電子郵件、短消息服務(wù)(Short Messaging Service,SMS)等。
存儲器1520可用于存儲軟件程序以及模塊,處理器1580通過運行存儲在存儲器1520的軟件程序以及模塊,從而執(zhí)行手機的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器1520可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)手機的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器1520可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
輸入單元1530可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與手機的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。具體地,輸入單元1530可包括觸控面板1531以及其他輸入設(shè)備1532。觸控面板1531,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板1531上或在觸控面板1531附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置。可選的,觸控面板1531可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標(biāo),再送給處理器1580,并能接收處理器1580發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸控面板1531。除了觸控面板1531,輸入單元1530還可以包括其他輸入設(shè)備1532。具體地,其他輸入設(shè)備1532可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元1540可用于顯示由用戶輸入的信息或提供給用戶的信息以及手機的各種菜單。顯示單元1540可包括顯示面板1541,可選的,可以采用液晶顯示器(Liquid Crystal Display,LCD)、有機發(fā)光二極管(Organic Light-Emitting Diode,OLED)等形式來配置顯示面板1541。進一步的,觸控面板1531可覆蓋顯示面板1541,當(dāng)觸控面板1531檢測到在其上或附近的觸摸操作后,傳送給處理器1580以確定觸摸事件的類型,隨后處理器1580根據(jù)觸摸事件的類型在顯示面板1541上提供相應(yīng)的視覺輸出。雖然在圖3中,觸控面板1531與顯示面板1541是作為兩個獨立的部件來實現(xiàn)手機的輸入和輸入功能,但是在某些實施例中,可以將觸控面板1531與顯示面板1541集成而實現(xiàn)手機的輸入和輸出功能。
手機還可包括至少一種傳感器1550,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板1541的亮度,接近傳感器可在手機移動到耳邊時,關(guān)閉顯示面板1541和/或背光。作為運動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準(zhǔn))、振動識別相關(guān)功能(比如計步器、敲擊)等;至于手機還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路1560、揚聲器1561,傳聲器1562可提供用戶與手機之間的音頻接口。音頻電路1560可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器1561,由揚聲器1561轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器1562將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路1560接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器1580處理后,經(jīng)RF電路1510以發(fā)送給比如另一手機,或者將音頻數(shù)據(jù)輸出至存儲器1520以便進一步處理。
Wi-Fi屬于短距離無線傳輸技術(shù),手機通過Wi-Fi模塊1570可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖3示出了Wi-Fi模塊1570,但是可以理解的是,其并不屬于手機的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器1580是手機的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執(zhí)行存儲在存儲器1520內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器1520內(nèi)的數(shù)據(jù),執(zhí)行手機的各種功能和處理數(shù)據(jù),從而對手機進行整體監(jiān)控??蛇x的,處理器1580可包括一個或多個處理單元;優(yōu)選的,處理器1580可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖牵鲜稣{(diào)制解調(diào)處理器也可以不集成到處理器1580中。
手機還包括給各個部件供電的電源1590(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器1580邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。
盡管未示出,手機還可以包括攝像頭、藍牙模塊等,在此不再贅述。
在本發(fā)明實施例中,該終端所包括的處理器1580還具有以下功能:獲取加密指令,根據(jù)加密指令將輸出的原始文本發(fā)送給服務(wù)器。接收服務(wù)器反饋的加密文本,加密文本與原始文本相關(guān)聯(lián)。將原始文本替換成加密文本。也即處理器1580具備執(zhí)行上述的在系統(tǒng)保護模式下的輸入方法的功能。
或者,在本發(fā)明實施例中,該終端所包括的處理器1580還具有以下功能:從第三方應(yīng)用程序中獲取加密文本;接收解密指令,根據(jù)解密指令將加密文本發(fā)送給服務(wù)器;接收服務(wù)器反饋的原始文本,輸出原始文本;原始文本與加密文本相關(guān)聯(lián)。也即處理器1580具備執(zhí)行上述的解密輸入法的功能。
當(dāng)然,在實際的實現(xiàn)中,處理器1580具備執(zhí)行上述的在系統(tǒng)保護模式下的輸入方法的功能,也具備執(zhí)行上述的解密輸入法的功能。通常這種移動終端可以是計算機、平板電腦、手機等等載有輸入法編輯器的智能終端。
上述的在系統(tǒng)保護模式下的輸入方法、裝置和移動終端,監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為,系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問;當(dāng)輸入法接口被調(diào)用時,獲取輸入控件的輸入文本類型;如果所述輸入文本類型為密碼,啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于所述安全空間。在系統(tǒng)保護模式下,如果監(jiān)聽到對輸入法接口的調(diào)用行為,且輸入控件的輸入文本類型為密碼,則證明用戶正要輸入密碼,無論系統(tǒng)默認調(diào)用(由用戶預(yù)設(shè)置的)的輸入法應(yīng)用是什么,此時都會自動啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用。這樣,即使系統(tǒng)默認調(diào)用的輸入法應(yīng)用為第三方應(yīng)用,也可以避免密碼泄露風(fēng)險,提高了安全性。
在本發(fā)明中,系統(tǒng)保護模式是通過系統(tǒng)的多用戶模式實現(xiàn)的。即系統(tǒng)處于管理員賬號登陸時為系統(tǒng)普通模式,系統(tǒng)處于普通用戶賬號登錄時為系統(tǒng)保護模式,系統(tǒng)從系統(tǒng)普通模式進入系統(tǒng)保護模式即相當(dāng)于系統(tǒng)從管理員模式切換到普通用戶模式。由于多用戶模式可以實現(xiàn)用戶間一定的數(shù)據(jù)隔離,從而可以實現(xiàn)用戶在系統(tǒng)保護模式下的操作安全,實現(xiàn)安全隔離。
本發(fā)明公開了如下方案:
A1、一種在系統(tǒng)保護模式下的輸入方法,包括如下步驟:
監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為,系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問;
當(dāng)輸入法接口被調(diào)用時,獲取輸入控件的輸入文本類型;
如果所述輸入文本類型為密碼,啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于所述安全空間。
A2、根據(jù)A1所述的輸入方法,所述預(yù)定應(yīng)用包括支付相關(guān)的應(yīng)用、理財相關(guān)的應(yīng)用和銀行相關(guān)的應(yīng)用中的至少其中一種。
A3、根據(jù)A1所述的輸入方法,所述運行資源包括該應(yīng)用程序本身、該應(yīng)用配置數(shù)據(jù)和該應(yīng)用用戶數(shù)據(jù)其中至少一種,所述安全空間包括存儲空間。
A4、根據(jù)A1所述的輸入方法,所述運行資源包括運行保護策略,所述安全空間包括存儲空間及其相應(yīng)的運行保護策略配置環(huán)境。
A5、根據(jù)A1所述的輸入方法,所述系統(tǒng)為安卓系統(tǒng),所述輸入法接口為InputMethodManager。
A6、根據(jù)A1所述的輸入方法,所述系統(tǒng)為安卓系統(tǒng),所述輸入控件為EditText控件,通過獲取EditText控件的inputType屬性以獲取所述輸入文本類型;如果inputType="textPassword"或inputType="textVisiblePass word",則所述輸入文本類型為密碼。
A7、根據(jù)A1所述的輸入方法,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為不可到達外部網(wǎng)絡(luò)的輸入法應(yīng)用。
A8、根據(jù)A7所述的輸入方法,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為具備聯(lián)網(wǎng)功能但是被系統(tǒng)設(shè)置為處于離線狀態(tài)的輸入法應(yīng)用。
A9、根據(jù)A8所述的輸入方法,所述啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用包括:
在密碼輸入期間斷開所述系統(tǒng)預(yù)設(shè)的輸入法與外部網(wǎng)絡(luò)的通信連接,完成密碼輸入時恢復(fù)該通信連接。
A10、根據(jù)A7所述的輸入方法,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為沒有聯(lián)網(wǎng)功能的輸入法應(yīng)用。
A11、根據(jù)A1所述的輸入方法,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:
在被調(diào)用后展示初始化的虛擬鍵盤;
在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變所述虛擬鍵盤的鍵位布局。
A12、根據(jù)A11所述的輸入方法,所述初始化的虛擬鍵盤的鍵位布局為隨機生成。
A13、根據(jù)A11所述的輸入方法,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:
在被調(diào)用后展示初始化的虛擬鍵盤;
接收到設(shè)定的切換指令;
在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變所述虛擬鍵盤的鍵位布局。
A14、根據(jù)A13所述的輸入方法,所述設(shè)定的切換指令包括由設(shè)定物理鍵盤的按壓事件生成的指令、由指紋傳感器的觸按事件生成的指令和由所述虛擬鍵盤上設(shè)定鍵位的觸按事件生成的指令中的至少一項。
A15、根據(jù)A11所述的輸入方法,所述設(shè)定的鍵盤觸按事件為數(shù)字鍵位或字母鍵位的觸按事件。
A16、根據(jù)A11所述的輸入方法,所述隨機改變所述虛擬鍵盤的鍵位布局為:隨機改變所述虛擬鍵盤上數(shù)字鍵位或字母鍵位的鍵位布局。
B17、一種在系統(tǒng)保護模式下的輸入裝置,包括:
監(jiān)聽模塊,用于監(jiān)聽在以普通用戶賬戶身份登錄的系統(tǒng)保護模式下觸發(fā)的對輸入法接口的調(diào)用行為,系統(tǒng)保護模式下,配置有用于為預(yù)定應(yīng)用的運行提供運行資源的安全空間,該安全空間在系統(tǒng)普通模式下不可訪問;
獲取模塊,用于當(dāng)輸入法接口被調(diào)用時,獲取輸入控件的輸入文本類型;
啟用模塊,用于如果所述輸入文本類型為密碼,啟用系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用安裝于所述安全空間。
B18、根據(jù)B17所述的輸入裝置,所述預(yù)定應(yīng)用包括支付相關(guān)的應(yīng)用、理財相關(guān)的應(yīng)用和銀行相關(guān)的應(yīng)用中的至少其中一種。
B19、根據(jù)B17所述的輸入裝置,所述運行資源包括該應(yīng)用程序本身、該應(yīng)用配置數(shù)據(jù)和該應(yīng)用用戶數(shù)據(jù)其中至少一種,所述安全空間包括存儲空間。
B20、根據(jù)B17所述的輸入裝置,所述運行資源包括運行保護策略,所述安全空間包括存儲空間及其相應(yīng)的運行保護策略配置環(huán)境。
B21、根據(jù)B17所述的輸入裝置,所述系統(tǒng)為安卓系統(tǒng),所述輸入法接口為InputMethodManager。
B22、根據(jù)B17所述的輸入裝置,所述系統(tǒng)為安卓系統(tǒng),所述輸入控件為EditText控件,所述獲取模塊通過獲取EditText控件的inputType屬性以獲取所述輸入文本類型;如果inputType="textPassword"或inputType="textVisiblePassword",則所述輸入文本類型為密碼。
B23、根據(jù)B17所述的輸入裝置,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為不可到達外部網(wǎng)絡(luò)的輸入法應(yīng)用。
B24、根據(jù)B23所述的輸入裝置,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為具備聯(lián)網(wǎng)功能但是被系統(tǒng)設(shè)置為處于離線狀態(tài)的輸入法應(yīng)用。
B25、根據(jù)B24所述的輸入裝置,所述啟用模塊用于:在密碼輸入期間斷開所述系統(tǒng)預(yù)設(shè)的輸入法與外部網(wǎng)絡(luò)的通信連接,完成密碼輸入時恢復(fù)該通信連接。
B26、根據(jù)B23所述的輸入裝置,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用為沒有聯(lián)網(wǎng)功能的輸入法應(yīng)用。
B27、根據(jù)B17所述的輸入裝置,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:
在被調(diào)用后展示初始化的虛擬鍵盤;
在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變所述虛擬鍵盤的鍵位布局。
B28、根據(jù)B27所述的輸入裝置,所述初始化的虛擬鍵盤的鍵位布局為隨機生成。
B29、根據(jù)B27所述的輸入裝置,所述系統(tǒng)預(yù)設(shè)的輸入法應(yīng)用用于:
在被調(diào)用后展示初始化的虛擬鍵盤;
接收到設(shè)定的切換指令;
在隨后每一次監(jiān)聽到設(shè)定的鍵盤觸按事件時,隨機改變所述虛擬鍵盤的鍵位布局。
B30、根據(jù)B29所述的輸入裝置,所述設(shè)定的切換指令包括由設(shè)定物理鍵盤的按壓事件生成的指令、由指紋傳感器的觸按事件生成的指令和由所述虛擬鍵盤上設(shè)定鍵位的觸按事件生成的指令中的至少一項。
B31、根據(jù)B27所述的輸入裝置,所述設(shè)定的鍵盤觸按事件為數(shù)字鍵位或字母鍵位的觸按事件。
B32、根據(jù)B27所述的輸入裝置,所述隨機改變所述虛擬鍵盤的鍵位布局為:隨機改變所述虛擬鍵盤上數(shù)字鍵位或字母鍵位的鍵位布局。
C33、一種移動終端,其包括:
觸敏顯示器;
一個或多個處理器;
存儲器;
一個或多個應(yīng)用程序,其中所述一個或多個應(yīng)用程序被存儲在所述存儲器中并被配置為由所述一個或多個處理器執(zhí)行,所述一個或多個程序配置用于執(zhí)行A1至A16任一項所述的在系統(tǒng)保護模式下的輸入方法。
應(yīng)該理解的是,雖然附圖的流程圖中的各個步驟按照箭頭的指示依次顯示,但是這些步驟并不是必然按照箭頭指示的順序依次執(zhí)行。除非本文中有明確的說明,這些步驟的執(zhí)行并沒有嚴(yán)格的順序限制,其可以以其他的順序執(zhí)行。而且,附圖中的至少一部分步驟可以包括多個子步驟或者多個階段,這些子步驟或者階段并不必然是在同一時刻執(zhí)行完成,而是可以在不同的時刻執(zhí)行,其執(zhí)行順序也不必然是依次進行,而是可以與其他步驟或者其他步驟的子步驟或者階段的至少一部分輪流或者交替地執(zhí)行。
以上所述僅是本發(fā)明的部分實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。