欢迎光临散文网 会员登陆 & 注册

研维工业平板电脑pad支持自定义按键_无线手持终端按键按需定制功能

2022-09-08 13:38 作者:研维三防电脑  | 我要投稿

研维工业平板电脑pad支持自定义按键_无线手持终端按键按需定制功能

      很多小伙伴,在选择工业类安卓平板电脑、手持终端的时候,想要自定义平板电脑自带的部分按键,如何实现呢?研维小编今天就为大家介绍一下安卓手持终端自定义按键开发、android平板电脑自定义实体按键这方面知识。

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

安卓手持终端自定义按键开发,android
安卓手持终端自定义按键开发,android

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

安卓手持终端自定义按键开发,android

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接管响应自定义按键了。

研维工业平板电脑pad支持自定义按键_无线手持终端按键按需定制功能的评论 (共 条)

分享到微博请遵守国家法律