Java 在android 11上的sd卡上保存文件
我想将照片保存在Android 11上sd卡的外部应用程序目录中。 正确的方法是什么? 我是否必须使用SAF API和系统选择器,由用户必须在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以及三星
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()中找到。