使用FileProvider无法解析某些文件的根路径

时间:2019-07-05 11:27:19

标签: android android-fileprovider

我正在使用光标查询视频列表。选择文件时,我得到的路径是:

  

/ 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) }

任何指针将不胜感激。

0 个答案:

没有答案