如何增加按键??急

ZhengShuai1989 2010-08-07 10:34:24
在android中如何增加一个物理按键,如*键或#键。详细步骤,设计到哪些类,代码?谢谢了
...全文
495 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhengShuai1989 2010-08-09
  • 打赏
  • 举报
回复
有哪位高手知道,能否给我发个demo。

邮箱:zhengshuai1989◎126。com
ZhengShuai1989 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jindan_jinming 的回复:]
引用 6 楼 vclongking 的回复:
应用层就可以做到?关注关注

应该在底层的吧,这个涉及到驱动的问题,楼主是在硬件设备上增加一个按键吧?
[/Quote]

是的,在硬件设备上增加一个按键
ZhengShuai1989 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yihua0001 的回复:]
这个东西很简单,如果你的那个硬件的键值已经在kernel里注册了,那就只需要修改文件系统就好了。
只有几个文件修改一下就可以了,主要是定义键值,然后就是在phonewindows.java中实现它实现的具体功能。
建议打开/system/usr/layout/querty.kl(不知道有没有记错),这个文件记录了kernel传上来的键值以及文件系统对这个键值对应的值。如果你的kernel已经有……
[/Quote]

不太明白,因为我是新手,能不能详细点。
ProgrammerNO1 2010-08-09
  • 打赏
  • 举报
回复
按9,10L方法整了没
影子LEON 2010-08-09
  • 打赏
  • 举报
回复
首先在底层驱动里需要定义物理的按键的扫描码,在kl文件里定义扫描码跟keycode之间的对应关系,
如何在上层新增keycode可以查看KeyEvent.java文件,里面有介绍需要修改哪些文件。
但是PS:自己在上层新加按键有可能导致google 的CTS过不去。。
yihua0001 2010-08-09
  • 打赏
  • 举报
回复
最简单的办法:
1.在kernel里找到你要定义的那个物理按键的code,就是按这个键给系统发送哪个号码。
2.在/system/usr/layout/querty.kl文件里把这个code对应的信号设置成*或者#。
先试试看吧。
karlzheng 2010-08-08
  • 打赏
  • 举报
回复
看一下这一个:
http://blog.csdn.net/a3015440/archive/2010/06/24/5692459.aspx
karlzheng 2010-08-08
  • 打赏
  • 举报
回复
大概的流程:在驱动中上报input按键值,在应用层把上报上来的keycode转换成scancode,对scancode用intent事件broadcast出去
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 vclongking 的回复:]
应用层就可以做到?关注关注
[/Quote]
应该在底层的吧,这个涉及到驱动的问题,楼主是在硬件设备上增加一个按键吧?
yihua0001 2010-08-08
  • 打赏
  • 举报
回复
这个东西很简单,如果你的那个硬件的键值已经在kernel里注册了,那就只需要修改文件系统就好了。
只有几个文件修改一下就可以了,主要是定义键值,然后就是在phonewindows.java中实现它实现的具体功能。
建议打开/system/usr/layout/querty.kl(不知道有没有记错),这个文件记录了kernel传上来的键值以及文件系统对这个键值对应的值。如果你的kernel已经有这个键值,那么你把这个键值配置成你想要的功能就可以了。如果系统没有这个键值,你就自己添加,不过你说的这个符号文件系统里应该本来就有的。
如果需要自己添加,随便在这个文件里找一个键值,然后再代码里搜索一下,有几个文件对这个键值做了声明,如VOLUME_UP,这样依葫芦画瓢也在同样的地方声明你自己的东东就好了。
ZhengShuai1989 2010-08-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rollrock1987 的回复:]
这个东西应该跟驱动有关的吧 我觉得 按键这个东西应该是一个 表 来表示的
[/Quote]

驱动这块先不管它,上层应用怎么解决啊
rollrock1987 2010-08-07
  • 打赏
  • 举报
回复
这个东西应该跟驱动有关的吧 我觉得 按键这个东西应该是一个 表 来表示的
ZhengShuai1989 2010-08-07
  • 打赏
  • 举报
回复
各位高手帮帮忙、急
vclongking 2010-08-07
  • 打赏
  • 举报
回复
应用层就可以做到?关注关注
SmallHero007 2010-08-07
  • 打赏
  • 举报
回复
如果只是上层的话,你无非就是监听keyEvent,当keycode和你定义的那个键值相当的时候你就调用你的东西就玩了呀。。。
楼主我觉得你这问题提关键在于,如何定义自己的按键码。
估计得在驱动层去定义,驱动层自己不会,只能友情帮顶了。
liujinrui 2010-08-07
  • 打赏
  • 举报
回复
驱动层添加按键码,当按键触发时,上报按键码值。在上层,监听keyevent,通过eventcode判断是哪个按键。
恩,的确,这个Keyclone的功能是比AutoHotKey要来的强,而且更简单。所以我还是要向大家推荐,并且给大家一些简单的教程,好让大家快速上手。 首先下载破解版本,免安装的,双击Keyclone.exe,进入主界面,如下: 恩,这个是我现在的配置,你第一次打开时没有192.168.1.103:1442.....这一行的,别,咱们进入setup配置下,点setup,进入下图: 进入general这一项,先在keyclone name取个标识你的keyclone的名字,我随便取了个sony. local port是在两台电脑上联机使用keyclone的端口,只要你的端口没被占用,可以随便取,建议默认的就好。 send only 我一般是不勾的,因为这个项目是在另外一台电脑和你联机时,他通过keyclone发送的按键,这里也可以收到,如果勾了的话,就不能接收别机的键盘信号了。 auto-add windows titled,这个勾了的话,就可以自动识别你的windows窗口名,并自动加入到keyclone控制栏里了,exact name match,勾上就是精确识别下面设置的名称,建议勾上。最后在下面的文本框输入你要控制的各种窗口名字,恩,相信大家都是用来多开魔兽的,所以请写上"魔兽世界",台湾的写繁体版本的魔兽世界,欧美的写world of warcraft即可。 下面的几个pass mouse clicks,镜像鼠标点击(应该是只相应鼠标点击事件) distinguish left/right(区分鼠标左键和右键,对应pass mouse clicks) focus follows mouse,不知道到底有何作用,焦点跟随鼠标?我个人没有使用这个功能 always-on-top,使keyclone软件界面总在前面,基本不用 我都没勾,因为我个人觉得暂时用不到。 startup command我没使用 auto-connect,这个要好好设置下,主要是那些像我10开或15开的疯子,在2台电脑上利用keyclone联机使用多开的时候,利用这个,可以自动的连接2台电脑。如你所见,我在里面填的是192.168.1.103:1442 192.168.1.103是我的另外一台需要连接的电脑的内网IP地址,1442是上面填写的端口号。填写好后,每次打开keyclone软件,就自动添加了这个IP,并不停监听端口,你这个时候再打开另外一台电脑的keyclone,就会自动识别在这个主keyclone了。其实keyclone没有所谓主和副而言,在不同电脑的keyclone都是并列的。 OK,点apply, 再点OK,这样,就基本配置好了。 你这个时候,只要打开多个魔兽世界游戏,即可,keyclone会自动识别。如下图: 然后最小化keyclone,就会自动缩小在右下角了,进入游戏吧。我保证你会有时间需要使keyclone暂停的,这时你只要把鼠标右键点击keyclone的小图*出现小窗口,点override即可,再点一次就是恢复正常。 keyclone默认的是把所有键盘都镜像了,所以,你应该会要让某几个键位不镜像,譬如wasd,这个如果镜像了,再游戏里,会很乱,无法跟随。于是,你要进入setup,点do-not-pass,如下图: 在那里,先点击这行字,再按你要屏蔽的键盘,这样你屏蔽的键盘都会列表在上面的表里,你可以随时增加,取消。点apply和OK,就设置好了。 最后,在双机多开的操作中,另外一台电脑上的keyclone设置和以上的一样,只要把auto-connect的IP地址改成“你的IP地址:你设置的keyclone端口”即可,就能自动识别局域网里keyclone了。 ROUND-ROBIN 這個是設置某個鍵位輪流依次在各個遊戲窗口裏輸出。譬如聖騎士的神聖之錘,你可以輪流按神聖之錘所在的鍵位,第一次按是施放第一個窗口,第二次按是施放第二個窗口的。。。 接下来是宏的部分 当我在主窗口按了1后,其他的几个副窗口,都会得到1个“1”的数字输入,也就是可以实现后台操作。当然,这个时候只要在副窗口的号里设置了1个宏,并把这个宏放到按键1的位置,那么就成功啦。以下是宏的设置 ----------------------------------

80,492

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧