我正在尝试写入外部辅助存储(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卡?
答案 0 :(得分:4)
所以这不会起作用:
除其他原因外,我不知道要求设备具有SECONDARY_STORAGE
环境变量。
我拥有AndroidManifest.xml中的权限
适用于external storage,而非removable storage。
像文件管理器这样的应用程序如何写入SD卡?
他们依靠用户通过the Storage Access Framework帮助他们。