通过文件提供程序从意图共享内容 uri 时权限被拒绝

问题描述

我已从下载管理器下载数据,获取其本地 uri 并转换为内容 uri 以获取content://com.myapp.name.provider/external_path/seedsheet-Jan-07-22-31_1610037996323.mp4

当我尝试通过意图打开它时

val intent = Intent(Intent.ACTION_VIEW)
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
        val localUri = downloadItem.localUri.replace("file://","")
        val contentUri = FileProvider.getUriForFile(requireContext(),requireContext().packageName + ".provider",File(localUri))
    intent.setDataAndType(contentUri,fileHelper.getMimeType(requireContext(),contentUri))
    intent.putExtra(Intent.EXTRA_STREAM,contentUri);
    startActivity(intent)

我可以在 android R 上播放文件,但是当我尝试在 android Q 上播放时,我得到“文件无法播放” 通过MX播放器。此外,当我尝试图像时,甚至图像也无法打开。当我打开日志猫时,写的是权限被拒绝并且找不到文件

解决方法

您的应用是否具有访问文件系统的适当权限?