如何解决如何使用范围存储android 10通过Uri删除图像?
如何使用范围存储 android 10 通过 Uri 删除图像?
我将我的图片保存到这个范围
final String relativeLocation = Environment.DIRECTORY_PICTURES + File.separator + "myApp" + File.separator + constants.PhotoDirName;
ContentResolver resolver = context.getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME,name);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE,"image/jpg");
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH,relativeLocation);
Uri imageUri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues);
fos = resolver.openOutputStream(Objects.requireNonNull(imageUri));
我需要使用此代码使用 Uri 删除图像
String[] projection;
projection = new String[]{MediaStore.MediaColumns._ID};
Uri externalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = context.getContentResolver().query(externalUri,projection,MediaStore.MediaColumns.DISPLAY_NAME + " LIKE ?",new String[]{displayName},null);
assert cursor != null;
cursor.moveToFirst();
if (cursor.getCount() > 0) {
int columnIndex = cursor.getColumnIndex(projection[0]);
long fileId = cursor.getLong(columnIndex);
cursor.close();
Uri uri= Uri.parse(externalUri.toString() + "/" + fileId);
if (uri != null) {
final ContentResolver resolver = context.getContentResolver();
String[] selectionArgsPdf = new String[]{displayName};
try {
resolver.delete(uri,MediaStore.MediaColumns.DISPLAY_NAME + "=?",selectionArgsPdf);
} catch (Exception ex) {
ex.printStackTrace();
// show some alert message
}
}
}
但是图片没有删除!!
出现这个错误
android.app.RecoverableSecurityException: com.xxxx.xxxx has no access to content://media/external/images/media/11774
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。