2012.03.21

【Android SDK】Sambaでファイルを取得する

私はなんでこんなことをしているのでしょう。

ことの発端

Androidのメインファイラーとしては「ESエクスプローラ」を使っている。
Link:ES ファイルエクスプローラー - Google Play の Android アプリ

これのSamba機能が唐突に動かなくなりました。

「File Expart」というアプリではちゃんと見れている。
Link:File Expert - Google Play の Android アプリ

何かしらsamba周りがおかしいんだろうけどよくわからず。
なら自分で作ればいいんじゃね?ということでSambaをAndroidで実装できるかを調べてみたいと思います。

ライブラリ探し

まず標準ではsamba機能はないらしい。
なのでライブラリを探してみる。

Android SDKはJavaなので「Java版sambaがあればいいんじゃない?」という感じで
探していたらさっくり見つかりました。

JCIFSというのでできるらしいです。
Link:JCIFS

サンプル

プロジェクトを作り、JCIFSのjarをリンクする。
これで呼び出し準備完了。

実質の読み出しはこんな感じ。

sfis = new SmbFileInputStream("smb://(ユーザー名):(パスワード)@(IPアドレス)/(内部パス)");
BufferedReader br = new BufferedReader(new InputStreamReader(sfis));

これだけでもうWindowsにあるファイルが読めるようになります。

InputStream継承なので読み込み部分を変換するだけで
いろんなアプリにも対応できるようになっている。

いや~、すばらしい。

JCIFSのライセンス

すごく便利なので製品に使うとしたらライセンスはどうなのということで調べてみた。

JCIFSはLGPLライセンスらしい。
Link:GNU Lesser General Public License - Wikipedia

要約するとこんな感じでしょうか?

・製品版として出すのであればソースコードの公開

製品として使うのであればちょっといやな仕様ですね。


個人的なプログラムであればJCIFSはありですね。

しかし、GooglePlayとかにあげるアプリではソース公開が必要っぽいので
抵抗がある人は自作するかほかのライブラリを探したほうがよさそうです。

Android SDK逆引きハンドブック Android SDK逆引きハンドブック
中西葵 内村祐之 高橋良司

シーアンドアール研究所 2011-04-25
売り上げランキング : 20791

Amazonで詳しく見る by G-Tools

ニャッキ格闘列伝 > プログラム >

前の記事:
次の記事:

関連記事

コメントリスト

コメントなし

コメント



*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

こんなタグが使えるみたいよ:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>