Android 对 SD 卡的写入权限
Android write access to SD card
我正在尝试写入外部辅助 存储(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 卡而不是 phone 内存。
那么,如果应用应该被禁止写入二级存储,那么像File Manager这样的应用如何写入SD卡?
So this wont work:
除其他原因外,我不知道设备需要 SECONDARY_STORAGE
环境变量。
I have the permission in AndroidManifest.xml
那是为了 external storage, not removable storage。
how can apps like File Manager write to sd cards?
他们依靠用户通过 the Storage Access Framework 来帮助他们。
我正在尝试写入外部辅助 存储(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 卡而不是 phone 内存。
那么,如果应用应该被禁止写入二级存储,那么像File Manager这样的应用如何写入SD卡?
So this wont work:
除其他原因外,我不知道设备需要 SECONDARY_STORAGE
环境变量。
I have the permission in AndroidManifest.xml
那是为了 external storage, not removable storage。
how can apps like File Manager write to sd cards?
他们依靠用户通过 the Storage Access Framework 来帮助他们。