【Android】エミュレータでSDカードをマウントして使う方法 その2 
2014/02/26 Wed [edit]
いきなり「その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 を表示する
- 関連記事
トラックバック
トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/106-847bcc65
この記事にトラックバックする(FC2ブログユーザー)
| h o m e |