miX*_*iXo 2 java android android-external-storage
我正在尝试写入外部辅助存储(sd 卡),但看起来我没有权限。
根据安卓:
“辅助外部存储不得由应用程序写入,除非在合成权限允许的特定于包的目录中。 ”
所以这行不通:
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)
}
Run Code Online (Sandbox Code Playgroud)
我在 AndroidManifest.xml 中有权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
并且Environment.getExternalStorageDirectory()无法工作,因为我试图写入可移动 SD 卡而不是手机内存。
那么,如果应用程序应该被禁止写入二级存储,那么文件管理器之类的应用程序如何写入 SD 卡呢?