美文网首页
Android11 分享URI失败

Android11 分享URI失败

作者: 寒夜潇凌 | 来源:发表于2021-06-18 15:24 被阅读0次

    最近收到用户反馈:app分享文件到微信会提示:获取资源失败,分享到QQ提示:文件不存在。造成这个问题主要有两个原因:

    1、file:// 协议不再支持共享,需要用content:// 协议。简单的说就是文件Uri不能直接通过Uri.fromFile(file)获取,而应该通过FileProvider.getUriForFile(context, packageName+".fileprovider", file)获取。关于如何配置FileProvider网上已经一堆文章了,我这边就不再赘述。

    2、由于FileProvider的文件是私有域的,因此其他app想要访问该域的话需要我们的App进行授权

主要是两句代码
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION);
activity.grantUriPermission(packageName, uri,  Intent.FLAG_GRANT_READ_URI_PERMISSION);

3、如果你使用的Api版本为30即Android11,那么在调用queryIntentActivities获取相关应用的包名时并没有返回相关的包名,别急,这是因为android11又引入了一个包名可见性的概念,详情可以参考一下文章:Android11适配 - 软件包可见性

4、码云Demo

相关文章

网友评论

      本文标题:Android11 分享URI失败

      本文链接:https://www.haomeiwen.com/subject/wewkyltx.html