研维工业平板电脑pad支持自定义按键_无线手持终端按键按需定制功能
研维工业平板电脑pad支持自定义按键_无线手持终端按键按需定制功能
很多小伙伴,在选择工业类安卓平板电脑、手持终端的时候,想要自定义平板电脑自带的部分按键,如何实现呢?研维小编今天就为大家介绍一下安卓手持终端自定义按键开发、android平板电脑自定义实体按键这方面知识。
我们选择一款8寸的安卓平板电脑,自带2个自定义按键:


我们选择一款8寸的安卓平板电脑,自带2个自定义按键:

1、首先我们先处理GPIO硬件层驱动
gpio 引脚通常可以配置成输入和输出功能。作为输入功能,一般在 linux 系统里面是以中断的方式来使用;如果作为输出功能一般主要用来提供一个高低电平信号。
把按键输入设计为输入子系统的设备,输入子系统的框架比较清晰,运用起来较为简单,只需实现对应的接口即可。主要为:模块加载函数swkbd_init()、模块卸载函数swkbd_exit()、中断函数sw_isr_key()。
其中,模块加载函数负责进行输入设备初始化及注册,中断申请等操作;卸载函数负责进行释放中断、解注册输入设备;中断函数用于在按键按下时,读取当前电压,进行键值映射,并将按键事件进行上报。
修改映射源码,按键映射文件位置:\android42\device\softwinner\smfy-super3\sw-keyboard.kl
编译前需要修改Kconfig及Makefile文件。其源码位置在:lichee/linux-3.4/drivers/input/keyboard/
2、处理framework
在*.kl文件中,添加新的键值信息:Example: key 100 MEDIA_PLAY_PAUSE
把100定义到input.h中#define KEY_PLAYPAUSE 100
/kernel/drivers/**/input/Adc_keypad.c驱动对应的board-8726m-refc03.c中的
adc_kp_key[]对应的键位添加自定义的键码
如 :{KEY_PLAYPAUSE , "playpause", CHAN_5, 419, 60},
./frameworks/base/include/ui/keycodeLabels.h在数组static const KeycodeLabel KEYCODES[] 中添加 新定义的信息{ "PLAYPAUSE", 120 }
./ frameworks/base/native/include/android/Keycodes.h 枚举类型 中添加
AKEYCODE_PLAYPAUSE = 120,在bool KeyEvent::isSystemKey(int32_t keyCode)()中,同样需要添加:
case AKEYCODE_PLAYPAUSE:
通过以上的更改,新的键值就添加上去了,注意上面标红色的数字表示必须相同的,另外由于更改了 KeyEvent,影响到了API, 所以需要make update-api
3、这样上层客户APP就可以通过keycode接管响应自定义按键了。