Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1101261
  • 博文数量: 170
  • 博客积分: 1603
  • 博客等级: 上尉
  • 技术积分: 1897
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 15:54
文章分类

全部博文(170)

文章存档

2016年(27)

2015年(21)

2014年(27)

2013年(21)

2012年(7)

2011年(67)

我的朋友

分类: Android平台

2013-02-02 17:48:04

里程碑4键盘很爽比2爽,但是用connectbot的时候有大问题

shift+123456被映射成f1f2f3....了,之前我一直还以为connectbot加载键盘出了问题导致shift+1234打印不出字符,用vim的时候才发现被映射成功能键了

后来翻google和help的物理键盘文档里才发现

Function keys (F1 through F10)

Hold down the shift key and press numbers 1
through 10 to send F1 through F10 respectively  

坑爹!!!!

查了下源代码

if ((hardKeyboard && !hardKeyboardHidden)
      && (curMetaState & KeyEvent.META_SHIFT_ON) != 0
      && sendFunctionKey(keyCode))
     return true;


就是这里映射了!ok,反编译connectbot修改smali文件这里对应的内容——当然水平烂改了以后编译不回去了

没办法只能自己搭个安卓环境把源代码重新编译一边了0 0

http://blog.chinaunix.net/uid-23504396-id-3485978.html

按照上面搭建个安卓环境(虽然我讨厌java及其编辑器!!但是myeclipse 有时候还是挺好用的...!!再说一次学java打断腿!!)


用代理去

点zip那下载connectbot源代码

myeclipse新建android project(其实建什么都可以)

然后关掉myeclipse,进入到你新建的project目录,删除掉里面所有内容,把connectbot解压进去重新打开myeclipse,然后刷新下,再用android tools ——clean lint markers。(有小报错自己google解决下)

编辑org.connectbot.service.TerminalKeyListener

注释掉我之前说的那部分代码,这样里4键盘上的!@#$就能回来了!


改完了就想用类似方法解决另外一个里4键盘的大问题——没有alt键!

因为sym键在终端里呼不出符号界面而是直接打印一个框,加上没有alt....这样导致~|{}[]\打不出来!这个就是大问题了

最开始我是想改Generic.kl文件来改变物理键盘映射——把sym识别成alt,但是找半天没搞清楚sym的key值....

kl文件搞不定,我就想绕个路让connectbot认为按下的sym键是alt键,后来发现这条路对我来说也很难走...

回看了那个映射Function键盘的代码,最后想到的解决方法是把sym+1234567映射成~|{}[]\就可以了

不过可以这样改的关键在于sym键也是一种META键,可以通过event.getMetaState()获取到状态。

增加如下代码

#让按住sym键的时候不输出字符

if (keyCode == KeyEvent.KEYCODE_SYM){
uchar = 0x00;
return false;
}

在输出字符的判断中增加

点击(此处)折叠或打开

  1. if ((hardKeyboard && !hardKeyboardHidden) && ((orgMetaState & KeyEvent.META_SYM_ON) != 0)){
  2.                     switch (keyCode){
  3.                         case KeyEvent.KEYCODE_1:
  4.                             //~
  5.                             bridge.transport.write(0x7e);
  6.                             return true;
  7.                         case KeyEvent.KEYCODE_2:
  8.                             //`
  9.                             bridge.transport.write(0x60);
  10.                             return true;
  11.                         case KeyEvent.KEYCODE_3:
  12.                             //|
  13.                             bridge.transport.write(0x7c);
  14.                             return true;
  15.                         case KeyEvent.KEYCODE_4:
  16.                             //\
  17.                             bridge.transport.write(0x5c);
  18.                             return true;
  19.                         case KeyEvent.KEYCODE_5:
  20.                             //<
  21.                             bridge.transport.write(0x3c);
  22.                             return true;
  23.                         case KeyEvent.KEYCODE_6:
  24.                             //>
  25.                             bridge.transport.write(0x3e);
  26.                             return true;
  27.                         case KeyEvent.KEYCODE_7:
  28.                             //{
  29.                             bridge.transport.write(0x7b);
  30.                             return true;
  31.                         case KeyEvent.KEYCODE_8:
  32.                             //}
  33.                             bridge.transport.write(0x7d);
  34.                             return true;
  35.                         case KeyEvent.KEYCODE_9:
  36.                             //[
  37.                             bridge.transport.write(0x5b);
  38.                             return true;
  39.                         case KeyEvent.KEYCODE_0:
  40.                             //]
  41.                             bridge.transport.write(0x5d);
  42.                             return true;

  43.                     }
  44.                 }


这样重新编译以后就ok啦!


导出的apk文件必须签名否则不能在手机上安装

导出直接用android tools——export singed那个就ok啦

阅读(3752) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

yang_f_k2013-02-24 23:48:55

能不能把这个apk发给我一份  十分感谢 82642225

yang_f_k2013-02-23 01:42:22

qiu apk 82642225@qq.com shi fen gan xie!