2010/09/19

Android用sshクライアントの改造 for IS01

Android用のsshクライアントで著名なものとして、ConnectBotがありますが、こいつをIS01で使おうとすると、「! (Shift+1)」とか「" (Shift+2)」が入りません。

それだとほぼsshクライアントとしては使いものになりませんが、幸いなことにConnectBotはgoogle codeでソースが公開されているので、少し調べてみたところ、どうもConnectBot側でそれらのキーの組み合わせをファンクションキーとして扱っているようです。

以下が問題の箇所で、とりあえずコメントアウトしてしまえば上の問題はなくなりました。

src/org/connectbot/service/TerminalKeyListener.java:

// handle pressing f-keys
if ((hardKeyboard && !hardKeyboardHidden)
&& (curMetaState & KeyEvent.META_SHIFT_ON) != 0
&& sendFunctionKey(keyCode))
return true;

これで満足してほったらかしですが、キーボードがらみは色々と好き嫌いがありそうなので、もうちょっと一般化した設定項目にして改善を提案してみても良いのかもしれません。

2 件のコメント:

匿名 さんのコメント...

はじめまして、ちょっと質問があります。
私もconnectbotのソースを落としてきてコンパイルを試みているのですが、エラーがでてどうも上手くいきません。下記urlと同じ現象の様です。
http://www.mail-archive.com/android-beginners@googlegroups.com/msg23185.html

大変厚かましいお願いですが、taipapa様がビルドされた手順を教えて頂ければ幸いです。

taipapa さんのコメント...

こんにちは。taipapaがやったのは、

1)「git clone http://github.com/kruton/connectbot.git」でgithubからソースを取得。

2)得られたソースツリーをtarで固めて、Windowsのeclipse用のディレクトリへコピー、展開。

3)Eclipseから、プロジェクトを追加(New→Android Project)します。プロジェクトのディレクトリは2)で展開した先を指定します。

今、改めてやってみましたが、上の手順でビルドできました。なお、eclipseのバージョンは3.4.2です。

お役に立てばよいのですが。