Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android对SD卡的写访问_Java_Android_Android External Storage - Fatal编程技术网

Java Android对SD卡的写访问

Java Android对SD卡的写访问,java,android,android-external-storage,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.

我正在尝试写入外部辅助存储(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) 
}
我在AndroidManifest.xml

Environment.getExternalStorageDirectory()
无法工作,因为我正在尝试写入可移动sd卡,而不是手机内存

那么,如果应用程序被禁止写入辅助存储,那么像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) 
}
除其他原因外,我不知道设备需要有
辅助存储
环境变量

我拥有AndroidManifest.xml中的权限

那是为了,不是为了

像File Manager这样的应用程序如何写入sd卡


他们依靠用户通过帮助他们。

我相信你无法从KitKat开始或仅在KitKat中实现你想要实现的目标。