Android外部数据存储问题

时间:2011-03-26 19:39:58

标签: android

我正在尝试将数据存储在SD卡上,根据指南here我应该使用getExternalFilesDir()(API级别8),我真的很想这样做但是调用
File directory = context.getExternalFilesDir(null);一直在返回null,我正在使用我的主要活动作为上下文 然后我尝试恢复使用File dir = Environment.getExternalStorageDirectory();,它正确返回SD根,但显然我无法创建建议的“/ Android / data / package_name / files /”目录:

    File root = Environment.getExternalStorageDirectory();
    File dir = new File(root, GlobalConstants.EXTERNAL_SAVE_DIR);
    boolean canCreate = dir.mkdirs();

在此代码中canCreate为false(EXTERNAL_SAVE_DIR显然是/ Android / data / package_name / files /)。

有什么我想念的,也许我应该问一下Manifest的权限(我什么都没发现)?我读过getExternalFilesDir()有一个错误,其中内容在应用程序更新时被删除,我并不真正关心它,我宁愿使用它而不是另一个,因为我正在尝试符合API 8和我喜欢它为我处理目录名称的想法。

有什么想法吗?

1 个答案:

答案 0 :(得分:21)

您需要将以下内容添加到清单中:

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

否则您不能写入SD卡。如果您使用的是Eclipse,则可以使用清单编辑器的权限选项卡进行添加。