模拟器上的Environment.getExternalStorageDirectory()

时间:2011-09-29 01:37:28

标签: android android-emulator

我想在我的应用中读取和写入外部存储设备的图像。从我读到的内容是获取目录句柄的正确方法。

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

然而......

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

这是因为我正在使用模拟器吗?

2 个答案:

答案 0 :(得分:2)

您可能希望确保启用了外部存储:

在Eclipse中,转到Window> Android SDK和AVD Manager。选择适当的AVD,然后单击“编辑”。

Window - Android SDK and AVD Manager

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

Edit screen

编辑:还需要添加

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

到清单。

答案 1 :(得分:1)

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

因此,在控制台中,键入命令以使用该SD卡启动模拟器:

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

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