Androidのアプリ開発関連のブログ

一応レスポンスは取得できた

AsyncTaskLoaderでganymed-ssh-2でSSH接続して、一応レスポンスは取得できた。
でも、AsyncTaskLoaderで非同期で接続したままメインスレッドからコマンド送るいい方法がまだわからないのと、
ターミナルアプリを作ろうとすると、ただ結果が出力されるコマンドならいいが、「top」「vi」「nano」とか画面奪われるコマンドの実装方法がわからんな。
Google PlayにAndroid用SSHクライアントはいくつかあるっぽいが、実装してるのかな?

ganymed-ssh-2でのログインは、
conn.authenticateWithPassword(user,pass)
がパスワードログイン用で、引数は共にString渡せばいい。
公開鍵認証は、
conn.authenticateWithPublicKey(user,key,pass);
と、パスワードも渡さなきゃいけなく、
keyはFileを渡すかchar[]を渡すかどっちかで、Stringはダメらしい。
パスワードはnullでいいみたい。

切断時に切断待ちしないのかな?
連続ですぐに再接続しようとすると接続できない問題があった。
再度jschの方も試してこの問題あるか確認しようと思ったが、
やっぱjschのサンプルコード見ると、InputStreamが入力でOutputStreamが出力のように見える。
OutputStreamが出力だとファイルを経由させるとかしないと排他制御の仕方がわからん。
直接STDOUTに出力するならいいが、アプリ内で処理しようとなるとjschの仕様は難しいように思える。


まあ、今の時点ではターミナルアプリは良い感じに作れそうにない。
というわけなんで、パスワードと公開鍵の両方でログイン方法はわかったんで、ターミナルアプリはとりあえず中止にしてSFTPもできるようにするつもりのエディタアプリの方を制作再開するかな。
当初はローカルファイルからで。

後々通信も実装させるが、AsyncTaskLoaderよりもAsyncTaskにした方がいいかもしれん。