我在打电话给MediaStore.createWriteRequest(contentResolver, uris)时得到了这个异常。与Anrdroid及以上版本一样,我们必须使createWriteRequest在存储上写入。所以我正在尝试下面的代码并得到异常。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
List<Uri> uris = new ArrayList<>();
uris.add(mediaUri);
MediaStore.createWriteRequest(contentResolver, uris);
//code
}发布于 2021-06-22 07:09:30
您的Uri路径是错误的,这就是错误消息显示的原因。
content://com.abc.photoapp.provider/external_files/emulated/0/Pictures/camara/1623819097267.jpg 无效Uri路径:
有效路径是:内容://media///52703
在这里,我解释了文件路径一步一步删除媒体.
步骤1:
假设您有一个类似于这个"/storage/emulated/0/tempPic/export_image.jpg“的文件路径
File tempFile=new File("/storage/emulated/0/tempPic/export_image.jpg");
long mediaID=getFilePathToMediaID(tempFile.getAbsolutePath(), context);
public long getFilePathToMediaID(String songPath, Context context)
{
long id = 0;
ContentResolver cr = context.getContentResolver();
Uri uri = MediaStore.Files.getContentUri("external");
String selection = MediaStore.Audio.Media.DATA;
String[] selectionArgs = {songPath};
String[] projection = {MediaStore.Audio.Media._ID};
String sortOrder = MediaStore.Audio.Media.TITLE + " ASC";
Cursor cursor = cr.query(uri, projection, selection + "=?", selectionArgs, null);
if (cursor != null) {
while (cursor.moveToNext()) {
int idIndex = cursor.getColumnIndex(MediaStore.Audio.Media._ID);
id = Long.parseLong(cursor.getString(idIndex));
}
}
return id;
}步骤2:
将媒体id创建为Uri
Uri Uri_one = ContentUris.withAppendedId( MediaStore.Images.Media.getContentUri("external"),mediaID);
// content://media/external/images/media/52703内容Uri根据文件类型更改:
如果图像: MediaStore.Images.Media.getContentUri("external"),如果视频,那么: MediaStore.Video.Media.getContentUri("external")
步骤3:
准备并调用删除
List<Uri> uris=new ArrayList<>();
uris.add(<Add Paht : Uri_one >);
uris.add(<Add Paht : Uri_two >);
uris.add(<Add Paht : Uri_three >);
requestDeletePermission( context,uris);调用方法ask权限对话框后的在这里输入图像描述。requestDeletePermission方法是onActivityResult方法的返回结果。
上述方法支持android 11 (Target版本30 )和更高版本。媒体文件删除不需要manage_external_storage权限。您可以使用媒体,如视频、音频和图像。
如果要删除文档文件,则必须获得manage_external_storage权限。
https://stackoverflow.com/questions/64472765
复制相似问题