正文

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

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


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

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

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

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

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

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

/sys/board_properties/virtualkeys.{devicename}

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

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

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

 


上一章目錄下一章

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