在Android 11上,由于存储变更,安装Android应用程序后,将无法访问/检索以前使用MediaStore API创建的文件。这是因为应用程序在重新安装后获得了新的存储空间。您可以通过在应用程序的清单文件中设置android:requestLegacyExternalStorage属性来返回到常规的外部存储选项。这个属性需要在应用程序的application标签内设置,如下所示:
您还可以使用MediaStore API读取文件,如下所示:
Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String[] projection = {MediaStore.MediaColumns.DATA};
String selection = MediaStore.MediaColumns.DISPLAY_NAME + "=?";
String[] selectionArgs = new String[]{fileName};
Cursor cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);
if(cursor != null && cursor.moveToFirst()){
String filePath = cursor.getString(0);
cursor.close();
//Use filePath to access the file
}
这段代码将查询MediaStore以获取文件路径,以便您可以访问以前创建的文件。
下一篇:Android11运行时存储权限