Android写入SD卡访问权限

时间:2015-08-20 19:26:38

标签: java android android-external-storage

我正在尝试写入外部辅助存储(SD卡),但看起来我没有这个权限。

根据Android:

" 辅助外部存储不能由应用程序写入,但合成权限允许的特定于程序包的目录除外。"

所以这不会起作用:

try {
    String sdCard = System.getenv("SECONDARY_STORAGE");
    FileWriter writer = new FileWriter(new File(sdCard, "test.txt"));
    writer.write("a test");
    writer.flush();
    writer.close();
} catch (IOException e) {
    Log.d(e.toString());
    //java.io.FileNotFoundException: /storage/extSdCard/test.txt: open failed: EACCES (Permission denied) 
}

我拥有AndroidManifest.xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

的权限

Environment.getExternalStorageDirectory()因为我试图写入可移动SD卡而不是手机内存而无法正常工作。

因此,如果应该禁止应用程序写入辅助存储,那么File Manager等应用程序如何写入SD卡?

1 个答案:

答案 0 :(得分:4)

  

所以这不会起作用:

除其他原因外,我不知道要求设备具有SECONDARY_STORAGE环境变量。

  

我拥有AndroidManifest.xml中的权限

适用于external storage,而非removable storage

  

像文件管理器这样的应用程序如何写入SD卡?

他们依靠用户通过the Storage Access Framework帮助他们。