Flutter appinio_social_share插件中Custom FileProvider Path含义及疑问
1. your_custom_fileProvider_path 是什么?
这里的your_custom_fileProvider_path是你自定义的FileProvider权限标识后缀,用来组成完整的android:authorities值:
android:authorities是FileProvider的唯一标识符,必须保证在设备上不重复,格式通常为应用包名.自定义后缀- 举个例子,如果你的应用包名是
com.example.myflutterapp,可以把your_custom_fileProvider_path替换成fileprovider,最终编译后的authorities会变成com.example.myflutterapp.fileprovider - 这个后缀可以自由命名,只要符合Android命名规范,比如
share_provider、media_provider都可以
2. 是否需要创建自定义FileProvider类?
不需要。配置代码里使用的androidx.core.content.FileProvider是AndroidX官方提供的标准FileProvider实现,直接用这个类就行,完全不用自己编写自定义的FileProvider类。你只需要完成两个关键操作:
- 把配置中的占位符替换成自己定义的内容
- 在
res/xml目录下创建对应的路径配置文件(即your_custom_fileProvider_file_name对应的XML文件,比如file_paths.xml),用来指定FileProvider允许访问的文件目录
替换后的示例配置代码
<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>
对应的res/xml/file_paths.xml示例内容
<?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 允许访问应用内部缓存目录的images子目录 --> <cache-path name="shared_images" path="images/" /> <!-- 允许访问应用外部存储的公共图片目录 --> <external-images-path name="public_images" path="." /> </paths>
内容的提问来源于stack exchange,提问作者somebodyelse2022
相关产品推荐
相关产品推荐

