本發(fā)明涉及軟件開發(fā)技術(shù)領(lǐng)域,具體地說是一種用于Android系統(tǒng)的密碼鍵盤輸入方法。
背景技術(shù):
Android系統(tǒng)因開源和易于開發(fā)應(yīng)用,正越來越多的用于自助設(shè)備。Android系統(tǒng)采用Linux內(nèi)核,所以在Linux系統(tǒng)中使用的技術(shù)經(jīng)簡單移植適配即可在Android系統(tǒng)中使用。uinput是Linux常用的虛擬輸入設(shè)備管理器,可利用其將密碼鍵盤輸入轉(zhuǎn)換為系統(tǒng)輸入信號。
由于驅(qū)動開發(fā)多采用C/C++語言,難于利用已有的Java語言開發(fā)的輸入方式,故而采用uinput技術(shù),為在Android系統(tǒng)下開發(fā)處用戶態(tài)的密碼鍵盤驅(qū)動提供良好支持。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種用于Android系統(tǒng)的密碼鍵盤輸入方法,利用uinput技術(shù),實現(xiàn)密碼鍵盤輸入功能驅(qū)動,并可在不改變可執(zhí)行文件的前提下變更鍵盤輸入內(nèi)容。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種用于Android系統(tǒng)的密碼鍵盤輸入方法,核心為利用Linux內(nèi)核的uinput虛擬輸入設(shè)備,使Android系統(tǒng)將密碼鍵盤識別為普通鍵盤,以實現(xiàn)利用密碼鍵盤進(jìn)行輸入,包括利用/dev/uinput創(chuàng)建鍵盤輸入設(shè)備,自定義鍵盤布局,密碼鍵盤輸入內(nèi)容與鍵盤布局關(guān)聯(lián),向/dev/uinput寫入輸入信號;其中,
利用/dev/uinput創(chuàng)建鍵盤輸入設(shè)備,在文件系統(tǒng)中創(chuàng)建用于密碼鍵盤輸入的輸入設(shè)備;
自定義鍵盤布局,定義鍵盤布局文件,用于密碼鍵盤驅(qū)動適配;
密碼鍵盤輸入內(nèi)容與鍵盤布局關(guān)聯(lián),定義密碼鍵盤輸入與鍵盤布局關(guān)聯(lián),將密碼鍵盤輸入轉(zhuǎn)換為普通鍵盤輸入;
向/dev/uinput寫入輸入信號,向/dev/uinput寫入輸入信號,將密碼鍵盤輸入轉(zhuǎn)為普通鍵盤輸入。
優(yōu)選的,密碼鍵盤輸入功能驅(qū)動,設(shè)備驅(qū)動服務(wù)在系統(tǒng)啟動時啟動,后在/dev/uinput中注冊設(shè)備為鍵盤輸入設(shè)備,并注冊鍵盤按鍵和鍵盤布局;密碼鍵盤按鍵后,讀取密碼鍵盤輸入內(nèi)容,并轉(zhuǎn)換為輸入信號,寫入/dev/uinput設(shè)備,即可實現(xiàn)輸入。
優(yōu)選的,定義鍵盤布局,將按鍵在創(chuàng)建虛擬輸入設(shè)備時注冊,并在鍵盤布局文件中將注冊的按鍵與希望產(chǎn)生的輸入效果對應(yīng),再將鍵盤布局文件放入系統(tǒng)指定位置。如果要變更鍵盤輸入內(nèi)容,只需更改鍵盤布局文件即可。
本發(fā)明的一種用于Android系統(tǒng)的密碼鍵盤輸入方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
uinput是Linux發(fā)行版中常用的信號輸入技術(shù),通過uinput可輕易定制輸入內(nèi)容,因而在不涉及內(nèi)核的設(shè)備驅(qū)動開發(fā)中得到了廣泛應(yīng)用;
在以Linux內(nèi)核 為基礎(chǔ)的操作系統(tǒng)中廣泛存在;可實現(xiàn)各種設(shè)備的信號輸入功能;無需對Linux內(nèi)核代碼做出改動,對開發(fā)人員要求降低;在用戶態(tài)直接對uinput操作,即可向內(nèi)核注入輸入信號。
具體實施方式
下面結(jié)合具體實施例對本發(fā)明作進(jìn)一步說明。
一種用于Android系統(tǒng)的密碼鍵盤輸入方法,核心為利用Linux內(nèi)核的uinput虛擬輸入設(shè)備,使Android系統(tǒng)將密碼鍵盤識別為普通鍵盤,以實現(xiàn)利用密碼鍵盤進(jìn)行輸入,包括利用/dev/uinput創(chuàng)建鍵盤輸入設(shè)備,自定義鍵盤布局,密碼鍵盤輸入內(nèi)容與鍵盤布局關(guān)聯(lián),向/dev/uinput寫入輸入信號;其中,
利用/dev/uinput創(chuàng)建鍵盤輸入設(shè)備,在文件系統(tǒng)中創(chuàng)建用于密碼鍵盤輸入的輸入設(shè)備;
自定義鍵盤布局,定義鍵盤布局文件,用于密碼鍵盤驅(qū)動適配;
密碼鍵盤輸入內(nèi)容與鍵盤布局關(guān)聯(lián),定義密碼鍵盤輸入與鍵盤布局關(guān)聯(lián),將密碼鍵盤輸入轉(zhuǎn)換為普通鍵盤輸入;
向/dev/uinput寫入輸入信號,向/dev/uinput寫入輸入信號,將密碼鍵盤輸入轉(zhuǎn)為普通鍵盤輸入。
密碼鍵盤輸入功能驅(qū)動,設(shè)備驅(qū)動服務(wù)在系統(tǒng)啟動時啟動,后在/dev/uinput中注冊設(shè)備為鍵盤輸入設(shè)備,并注冊鍵盤按鍵和鍵盤布局;密碼鍵盤按鍵后,讀取密碼鍵盤輸入內(nèi)容,并轉(zhuǎn)換為輸入信號,寫入/dev/uinput設(shè)備,即可實現(xiàn)輸入。
定義鍵盤布局,將按鍵在創(chuàng)建虛擬輸入設(shè)備時注冊,并在鍵盤布局文件中將注冊的按鍵與希望產(chǎn)生的輸入效果對應(yīng),再將鍵盤布局文件放入系統(tǒng)指定位置。如果要變更鍵盤輸入內(nèi)容,只需更改鍵盤布局文件即可。
設(shè)備服務(wù)需在使用鍵盤前啟動,可將設(shè)備服務(wù)設(shè)置為開機啟動,即可實現(xiàn)此要求。
利用設(shè)備服務(wù)向uinput注冊虛擬鍵盤設(shè)備,并定義鍵盤輸入鍵,打開/dev/uinput,將虛擬鍵盤信息和輸入鍵信息寫入,即可創(chuàng)建可用于輸入的虛擬鍵盤。
利用鍵盤布局文件將鍵盤輸入鍵和鍵盤輸入信號關(guān)聯(lián),編輯鍵盤布局文件,將鍵盤輸入鍵和鍵盤輸入信號關(guān)聯(lián),并將文件放入系統(tǒng)指定位置。
將按鍵產(chǎn)生的數(shù)據(jù)轉(zhuǎn)換成鍵盤輸入信號,在設(shè)備服務(wù)中,將密碼鍵盤按鍵產(chǎn)生的數(shù)據(jù)轉(zhuǎn)換成鍵盤輸入鍵的值,寫入/dev/uinput,即可產(chǎn)生鍵盤輸入信號。
如果實際項目需要產(chǎn)生其他鍵盤輸入,調(diào)整鍵盤布局文件即可。
本發(fā)明已經(jīng)過驗證性及實用性測試,并在公司使用Android系統(tǒng)的金融自助設(shè)備上使用,經(jīng)多次測試及長時間觀察,按照本方法實現(xiàn)的密碼鍵盤輸入,輸入速度快,無輸入錯誤,而且可輕易通過更改鍵盤布局文件實現(xiàn)輸入定義。
通過上面具體實施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實施方式。在公開的實施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。