我正在使用光标查询视频列表。选择文件时,我得到的路径是:
/ storage / 415A-1609 / WhatsApp / Media / WhatsApp动画 Gifs / VID-20190701-WA0001.mp4
在通常情况下,我得到的是
/ storage / emulated / 0 / WhatsApp / Media / WhatsApp动画 Gifs / VID-20190701-WA0001.mp4
代码:
private final String[] videosProjection = new String[]{
MediaStore.Video.Media._ID,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.MIME_TYPE,
MediaStore.Video.VideoColumns.DURATION};
contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
videosProjection,
MediaStore.Video.Media.BUCKET_DISPLAY_NAME + " =?",
new String[]{album}, MediaStore.Video.Media.DATE_ADDED)
在大多数情况下都能很好地工作,除了一些三星设备,当我尝试选择WhatsApp视频时会返回这种路径。该URI段(“ / storage / 415A-1609”)不存在,也不属于设备中任何现有根目录的一部分。
我正在使用FileProvider获取文件的uri
private fun getVideoUri() = FileProvider.getUriForFile(this, packageName.plus(".provider"), File("<file path mentioned above>"))
?.also { it.grantReadPermission(this) }
任何指针将不胜感激。