正文

8.6 虛擬按鍵的實(shí)現(xiàn)

Android系統(tǒng)級(jí)深入開發(fā):移植與調(diào)試 作者:韓超


虛擬按鍵(Virtual Key)是Eclair版本開始增加的新特性。Virtual Key的功能是利用觸摸屏,模擬按鍵發(fā)生的事件,這樣就可以利用觸摸屏的邊緣,實(shí)現(xiàn)一些可以自定義的按鍵效果。

虛擬按鍵的實(shí)現(xiàn)效果如圖8-5所示。

在Android系統(tǒng)中,觸摸屏設(shè)備發(fā)送的是RawInputEvent(原始輸入事件),而按鍵發(fā)送的是KeyEvent(按鍵事件)。KeyEvent直接發(fā)送給應(yīng)用程序?qū)?,RawInputEvent在Android的Java框架中被轉(zhuǎn)換成MotionEvent發(fā)送給應(yīng)用程序?qū)印?/p>

在Android系統(tǒng)中虛擬按鍵的實(shí)現(xiàn)方法是:在某種情況下,將RawInputEvent轉(zhuǎn)換成KeyEvent。

frameworks/base/services/Java/com/android/server目錄中的InputDevice.Java文件負(fù)責(zé)處理虛擬按鍵的主要文件。

虛擬按鍵的處理相對(duì)簡(jiǎn)單,需要根據(jù)以下文件對(duì)虛擬按鍵的內(nèi)容進(jìn)行配置:

/sys/board_properties/virtualkeys.{devicename}

在InputDevice.Java文件中通過readVirtualKeys,對(duì)進(jìn)行消息的轉(zhuǎn)化。根據(jù)配置文件將RawInputEvent轉(zhuǎn)換成按鍵相關(guān)的內(nèi)容。

virtualkeys.{devicename}是虛擬按鍵的適配文件,需要在目標(biāo)文件系統(tǒng)的/sys/board_ properties/目錄中。

虛擬按鍵配置文件的格式如下所示:

 


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)