在Android 11上,使用createDeleteRequest()方法来请求文件的删除会遇到OnActivityResult问题。这是因为Android 11限制了应用对外部存储的访问。为了解决这个问题,我们需要使用MediaStore API来删除文件。
以下是示例代码:
private void deleteFile(){
Uri uri = MediaStore.Downloads.EXTERNAL_CONTENT_URI;
String selection = MediaStore.Downloads._ID + "=?";
String[] selectionArgs = new String[]{fileId};
ContentResolver contentResolver = getContentResolver();
int rowsDeleted = contentResolver.delete(uri, selection, selectionArgs);
if (rowsDeleted > 0) {
Toast.makeText(this, "文件删除成功", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "无法删除该文件", Toast.LENGTH_LONG).show();
}
}
这里我们使用了MediaStore.Downloads.EXTERNAL_CONTENT_URI作为要删除的文件的URI,然后使用MediaStore.Downloads._ID作为条件来选择要删除的文件。最后,我们使用ContentResolver来执行删除操作,并根据返回的行数来判断是否删除成功。
这样,我们就可以在Android 11上通过MediaStore API来删除文件,而不再需要使用createDeleteRequest()方法。