Home > android > AndroidでSDカードを利用する方法

AndroidでSDカードを利用する方法

Androidは外部メディアとしてSDカードが使えるようになっています。
今回はSDカードの使い方をご紹介します。

SDカードを作る

まずはターミナルでコマンドを打ってAndroidのエミュレータで利用できる仮想的なSDカードを作ります。

%mksdcard 2048M mycard

これでmycardというFAT32フォーマットのディスクイメージが出来上がります。(少し時間がかかります)
2048Mとはイメージの大きさです。これ以外の大きさではエミュレータ起動時にエラーで落ちます(原因不明です…)。
ちなみにエミュレータがサポートしているディスクイメージは2GB(2048M)までです。

エミュレータにSDカードをセットして起動する

ターミナルからコマンドでエミュレータを起動する場合は

%emulator -sdcard mycard

とします。
-sdcardというオプションの後に先ほど作ったディスクイメージのパスを渡します。
パスは相対でも絶対でも良いようです。

SDカードにファイル出力する

SDカードをセットした状態でエミュレータを起動すると、プログラムからSDカードへの入出力が可能になります。
ではさっそく。

String FILE = "/sdcard/test.txt";
try {
  BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream(FILE, true), "UTF-8"));
  bw.write("this is android\n");
  bw.close();
} catch (UnsupportedEncodingException e) {
  e.printStackTrace();
} catch (FileNotFoundException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}

見ての通り、SDカードをセットして起動するとSDカードのファイルシステムは/sdcardにマウントされます。ですので、その下のファイルに対して入出力する事ができます。このプログラムを起動すると「/sdcard/test.txt」に「this is android」という文字列が書き込まれます。
確認方法はAndroidのマイクロカーネル上で可能です。

%adb shell
#cat /sdcard/test.txt
this is android
#

他にもloopデバイスとしてマウントして利用する事もできるようです。→参考
(Macでlosetupコマンドが見つからないので試していません…)

おわりに

AndroidでSDカードを利用するのはとても簡単でした。SDカードをセットしてエミュレータを起動するときのエラーはよくわかりませんが…。原因が分かる人教えて下さい。

関連のありそうなエントリ

Comments:2

NeoCat 08-06-24 (火) 3:54

今更ですが、MacならSDカードのイメージに拡張子.imgをつけてダブルクリック(もしくはopenコマンド)でマウントできまっせ。

adamrocker 08-06-24 (火) 7:23

おぉ!初コメントありがとう!そして情報ありがとう。
openコマンドでもイメージ開けるのはしらなかった。

Comment Form
Remember personal info

*
To prove that you're not a bot, enter this code
Anti-Spam Image

Trackbacks:0

Trackback URL for this entry
http://www.adamrocker.com/blog/170/use_sdcard_on_android.html/trackback/
Listed below are links to weblogs that reference
AndroidでSDカードを利用する方法 from throw Life

Home > android > AndroidでSDカードを利用する方法

Search
Feeds
Meta

Return to page top