FileProvider方式分享配置
当前QQ和微信适配了FileProvider,需要把图片放入应用专属目录, 通过context.getFilesDir或context.getExternalFilesDir等方式获取图片路径,传入路径时分享SDK内部会判断在当前APP支持的情况下把路径转为content uri进行分享。
在Manifest中配置Provider,authorities约定为applicationId.FileProvider,注意FileProvider的大小写。
<provider android:name="androidx.core.content.FileProvider" android:authorities="com.tencent.tmf.demo.FileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider> <paths> <!-- 自定义目录映射用于微信分享,可以定义多个。name值随意填写,path需要填写子目录名, 要和文件保存目录保持一致,如以下获得路径时用context.getExternalFilesDir("img"),context.getFilesDir() --> <external-files-path name="sharedata" path="img" /> <files-path name="sharedata2" path="." /> <!-- opensdk_root,opensdk_external 为QQ分享默认规定,无需修改 --> <external-files-path name="opensdk_external" path="Images/tmp"/> <root-path name="opensdk_root" path=""/> <external-path name="external_files" path="."/> </paths>