android - 使用 DocumentFile TreeUri 在 Android 11 上的 MediaStore 中更新 DATE_MODIFIED
问题描述
我正在努力使用 DocumentFile/TreeUri 更新媒体存储中的元数据。这就是我尝试这样做的方式:
boolean canWrite = documentFile.canWrite(); //returns true
Uri mediaUri = MediaStore.getMediaUri(context, documentFile.getUri());
ContentValuesvalues = new ContentValues();
values.put(MediaStore.MediaColumns.DATE_MODIFIED, newLastModified);
boolean success = context.getContentResolver().update(mediaUri, values,null, null) > 0;
它失败了,logcat 显示:
W/MediaProvider:忽略 date_modified 的突变
我究竟做错了什么?DocumentFile 是可写的,它是通过 Intent.ACTION_OPEN_DOCUMENT_TREE 接收的,并且在文件夹上调用了 takePersistableUriPermission。我还尝试在之前使用 IS_PENDING 更新条目并在之后删除:
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.IS_PENDING, 1);
boolean success = context.getContentResolver().update(mediaUri, values,
null, null) > 0; //returns false
无论出于何种原因返回也是错误的,但我看到该文件以 .pendingxxxx 为前缀,所以它似乎工作
ContentValuesvalues = new ContentValues();
values.put(MediaStore.MediaColumns.DATE_MODIFIED, newLastModified);
values.put(MediaStore.MediaColumns.IS_PENDING, 0);
boolean success = context.getContentResolver().update(mediaUri, values,null, null) > 0; //returns false
解决方案
推荐阅读
- azure - 使用 Invocation Id 杀死正在运行的 azure 函数实例
- matlab - 更改 inputdlg 字段名称的颜色
- shibboleth - Shibboleth 4 IDP:使用密码流查询两个不同的登录源
- ios - 如何在 SwiftUI 中的 UIViewControllerRepresentable 中隐藏 UIKit Tabbar
- python - 替换掩码数据框中的 NaN
- python - 从对象到对象获取数据时减少代码行?
- c# - 使用异步过滤器有什么好处?
- mongodb - 为什么我不能在 Web 应用程序之外发送 http 请求?
- javascript - 活动类保持激活状态,我需要这个激活类在我滚动时不会保持活动状态
- gnuplot - 如何在 gnuplot 中将散点图与参数图结合起来