添加了查询条件new String[]{MediaStore.Video.VideoColumns.SIZE}结果依然是0
时间: 2024-03-16 16:45:59 浏览: 48
如果你使用了正确的查询条件,并且仍然无法获取到文件大小,那么可能是因为媒体库中缓存的信息没有及时更新导致的。这种情况下,你可以尝试使用 MediaScannerConnection 来强制更新媒体库信息。具体方法如下:
```
MediaScannerConnection.scanFile(context, new String[] { file.getAbsolutePath() }, null, new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
// 重新查询文件大小
Cursor cursor = resolver.query(uri, new String[]{MediaStore.Video.VideoColumns.SIZE}, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
long size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Video.VideoColumns.SIZE));
// 处理文件大小
}
}
});
```
这段代码会强制扫描指定的文件,更新媒体库中的信息。在扫描完成后,你可以重新查询文件大小,应该能够获取到正确的结果。
阅读全文