FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム » Android »【Android】エミュレータでSDカードをマウントして使う方法 その2

【Android】エミュレータでSDカードをマウントして使う方法 その2  


 いきなり「その2」なのは、「その1」はググるれば出てくるやり方で、

 Androidエミュレーターの仮想SDカードを使う

などの方法。

 しかし、なぜか私の開発環境では上手く行かなかった。

 理由は定かではないが、Eclipse からでは、どうしてもSDカードがマウントされた状態にならない。よくエミュレータ起動時に adb との接続が切れて、何度か起動失敗するせいかも知れない(PCが古い)。接続タイムアウトを伸ばしたり、adb shell でリマウントしても無理だった。Eclipse のファイルエクスプローラや adb 上は成功するが、エミュレータがSDカードを認識しない。ついでに sdutil もなぜか Not Found になる。環境が古いだけかも知れないが、他に問題は無いし…。

 とりあえず、このままの環境(Android2.2以降対応/ADT Build: v22.0.5)で、何か方法はないかな~、とコマンドプロンプトで色々やってみたら、上手くSDカードが使えるようになった。その方法。


1.SDK の tools フォルダから emulator コマンド(exe)を使って直接エミュレータを起動(SDカードのマウントも指定)。

emulator -sdcard sdcard.img -avd [AVD名]

※仮想SDカードのイメージファイル(sdcard.img)は「その1」と同様(mksdcard.exeで作る)。イメージファイルのパス名に空白文字を入れてはならない("Program Files"とか)。
※[AVD名]は仮想デバイス・マネージャーでの登録名(AVD名)

2.起動後、SDK の platform-tools フォルダから adb(exe) とエミュレータを接続し直す。

adb kill-server
adb start-server
adb devices

※「adb devices」でエミュレータがリストに出てくればOK。

3.再接続が成功したら、必要なファイルをSDカードに転送する。

adb push [ファイル名] mnt/sdcard

4.あとは「その1」と同じやり方で「DevTools」から「Media Scanner」でファイルをエミュレータで認識させると、エミュレータの Gallery や Music で使用できる。

 プログラムコードからSDカードにファイルを保存する場合は、「AndroidManifest.xml」に、

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

を入れるのを忘れずに。

 ただ読み込むだけなら、コンテンツプロバイダの機能を使えば利用できる。その辺はググればいくらでもサンプルが出てくるだろう。

 何らかの原因でエミュレータとの接続が切れた場合も、adb の再接続だけで事足りるかも知れない。


(関連記事)
【Android】SDカードからテキストファイルを読み込む
【Android】SDカードにテキストファイルを保存する
【Android】エラーをSDカードに書き出す
【Android】SDカードから画像ファイルを読み込む
【Android】SDカードに画像ファイルを保存する(png)
【Android】SDカードに画像ファイルを保存する(jpg)
【Android】SDカードのファイルを削除する
【AndroidStudio】AndroidStudio 2.x で DDMS を表示する


関連記事
スポンサーサイト



category: Android

thread: プログラミング

janre: コンピュータ

tag: 開発ツール  トラブルシューティング  SDカード 
tb: 0   cm: --


トラックバック

トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/106-847bcc65
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR