Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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 11上的sd卡上保存文件_Java_Android_Android External Storage_Scoped Storage - Fatal编程技术网

Java 在android 11上的sd卡上保存文件

Java 在android 11上的sd卡上保存文件,java,android,android-external-storage,scoped-storage,Java,Android,Android External Storage,Scoped Storage,我想将照片保存在Android 11上sd卡的外部应用程序目录中。 正确的方法是什么? 我是否必须使用SAF API和系统选择器,由用户必须在sd卡上选择文件夹的操作打开文档树触发 或者我可以用这个方法: File[] externalStorageVolumes =ContextCompat.getExternalFilesDirs(mContext, null); 并假设如果sd卡可用,它将位于externalStorageVolumes[1]? 这在我的两台设备(三星j1和安卓5以及三星

我想将照片保存在Android 11上sd卡的外部应用程序目录中。 正确的方法是什么? 我是否必须使用SAF API和系统选择器,由用户必须在sd卡上选择文件夹的操作打开文档树触发

或者我可以用这个方法:

File[] externalStorageVolumes =ContextCompat.getExternalFilesDirs(mContext, null);
并假设如果sd卡可用,它将位于
externalStorageVolumes[1]
? 这在我的两台设备(三星j1和安卓5以及三星s10和安卓10)上都有效,但我没有机会访问更多设备进行测试。

在安卓11(API级别30)及更高版本上,应用程序无法在上创建自己的应用程序特定目录

尝试媒体存储


或者以旧的android 10为目标,在

中设置requestLegacyExternalStorage=true,它将位于externalStorageVolumes[1]?
是。你可以继续使用这个特定于应用程序的目录。另外,两个安卓11 API 30模拟器上的安卓操作系统已经创建了一个DCIM目录。您可以在其中创建子文件夹并在其中写入.jpg文件。您也可以在API 30模拟器上进行测试。
应用程序无法在外部存储上创建自己的特定于应用程序的目录。
特定于应用程序的目录始终由Android操作系统创建,可以在getFilesDir()和getExternalFilesDir()以及getExternalFilesDir()中找到。