的问题是由于在Android 10及以上版本中,对文件访问权限进行了更严格的限制,需要通过FileProvider来提供文件的访问权限。
解决这个问题的步骤如下:
<application>
标签内添加以下代码:<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="." />
</paths>
FileProvider.getUriForFile
方法时,第一个参数应该是context
,第二个参数应该是authority
,即上述配置中的${applicationId}.fileprovider
。<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
以上步骤可以解决使用FileProvider.getUriForFile
时出现找不到已配置的根
的问题。这样可以确保你的应用在Android 10及以上版本中能够正确地访问公共文件夹。
推荐的腾讯云相关产品:腾讯云对象存储(COS)。
腾讯云对象存储(COS)是一种安全、高可靠、低成本、高扩展性的云端存储服务,适用于存储和处理任意类型的文件、图片、音视频等海量数据。它提供了简单易用的API接口,可以方便地在应用程序中进行文件的上传、下载、管理等操作。腾讯云对象存储还具备数据冗余备份、数据加密、访问权限控制等功能,确保数据的安全性和可靠性。
产品介绍链接地址:腾讯云对象存储(COS)
领取专属 10元无门槛券
手把手带您无忧上云