2011-09-29 99 views
3

我想读取和写入图像到我的应用程序中的外部存储。从我读到的下面是正确的方式来处理目录。模拟器上的Environment.getExternalStorageDirectory()

File externalStorageDir = Environment.getExternalStorageDirectory(); 
File picturesDir = new File(externalStorageDir, "Pictures"); 

但是......

picturesDir.exists(); // == null 
picturesDir.mkdir(); // == false 

这是因为我使用模拟器?

回答

2

你可能想确保你已经启用外部存储:

在Eclipse中,选择Window> Android SDK和AVD管理器。选择适当的AVD,然后单击编辑。

Window - Android SDK and AVD Manager

确保您已启用SD卡支持。如果没有,请点击“新建”按钮并选择“SD卡支持”选项。

Edit screen

编辑:另外需要

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

添加到清单。

+0

谢谢。我还必须将''添加到清单。这听起来正确吗? – Synesso

+1

是的 - 我补充说,以供将来参考的解决方案 – Jack

0

默认情况下,模拟器将在没有SD卡的情况下启动。 您应该首先在控制台中使用mksdcard命令来创建SD卡图像。 见SDK文档:https://developer.android.com/studio/command-line/mksdcard.html

因此,在控制台下输入命令来与SD卡启动模拟器:

emulator -avd <emulator name> -sdcard <sdcard image name> 

为了获得更好的性能,我强烈建议你通过一个真实的设备调试应用程序。