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

SFTPの実装に外部ライブラリが必要そう

ブログエディターの次に、FTP経由でリモートの編集ができるテキストエディタ的なのを作ろうとしてるが、
今日の作業はエディタ画面用にEditTextを置いたくらい。

EditTextを置いたActivity作って、ファイル選択の仕様を考えて、
  • ググったら、ダイアログでファイル選択を実装してる例が多い?
  • ギャラリーで画像を取得するように他アプリ経由で取得できないか?
ダイアログでの実装だと、誤タッチでキャンセルされないようにしたほうが良さそう?
他アプリ経由の取得はギャラリーと同じようにできそうだが、root権限のアプリで読み書きできないファイルが渡される可能性あるかも?

とか考えてたが、
他アプリ経由だとrootの可能性があるが、自前でファイル選択用のアクティビティー作っちゃうと今後も流用できそうだし、
ファイル選択用のアクティビティーを作る方法が良さそう。


で、リストはListViewで作るが、
まずローカルファイルのファイル一覧を表示する処理作ろうとして、
File android.content.Context.getFilesDir()
でjava.io.Fileが取得できる。


アクティビティーのレスポンスはURIの様だし、後からネット上のファイルも選択できるようにするためには、FileじゃなくてURIの方が良いかな?
File.toURI()
で簡単にURIに変換できるぽい。


その辺りで気づいたんだが、後からネット上のファイルも選択できるようにしたいが、最低でもFTPは実装しようと思うが、
FTPって言っても今はSSH経由のSFTP使うことが多いよね。

FTPやらSFTP(SSH)を実装するのにAndroidのAPIを検索したが、
恐らく無い・・・


公開されてるAndroidのFTPクライアントアプリはどうやって実装してるんだろう・・・自力実装する人がそんなに多いと思わないが・・・
と思って調べたりしてたが、
JavaのSSHライブラリはいくつか存在するみたいだね。
完全にフリーで使えるのはないかもしれないが、一番有名の?はBSDライセンスだった。
BSDライセンスは、ライセンス表示さえすれば利用するアプリ自体はクローズドで良く、ライブラリもバイナリのみ同梱でいいみたい。
ライセンス表記すら要らないのがあればいいが、BSDライセンスのライブラリでも利用可能な感じなんで、ライブラリ使って実装しようかと。


考えてるだけで今日はほぼ終わり。
ファイル選択はまずローカルファイルの選択機能から実装するが、
SSHライブラリの使い方知るために、まずSSHクライアントを作る方が良いかもしれんな・・・