Android 11 微信,QQ ,微博 分享适配,在阿里工作5年了

mBmp.compress(Bitmap.CompressFormat.JPEG, 90, outputStream);

outputStream.flush();

outputStream.close();

// 微信使用contentPath作为文件路径进行分享

return CommonUtils.getWeiChartFileUri(context, fileFilePri);

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

public static String getWeiChartFileUri(Context context, File file) {

if (file == null || !file.exists()) {

return null;

}

Uri contentUri = FileProvider.getUriForFile(context,

context.getPackageName() + “.fileprovider”, // 要与AndroidManifest.xml里配置的authorities一致,假设你的应用包名为com.example.app

file);

// 授权给微信访问路径

context.grantUriPermission(“com.tencent.mm”, // 这里填微信包名

contentUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);

return contentUri.toString(); // contentUri.toString() 即是以"content://"开头的用于共享的路径

}

相关说明,上面中的 checkVersionValid,checkAndroidNotBelowN 这2个方法,微信官方文档里面有,就不列上去了,方法一 是对分区缓存文件的存储,方法二是获取 content 开头的路径,我这里加了一个 android11Path 这个变量存储 ,确保 `mWXImageObject.imagePath = android11Path,至于其他的非分区的文件存储还是以前的逻辑.最终分享的时候,自行判断 imagePath 是取content 开头,还是非分区的文件路径,到这里微信Android 11 分享处理完毕了。

因为 各自的分享整合的逻辑不一致,所以我就不贴具体的分享代码了,在现有逻辑上 去Android11Path ,还是以前的path ,实在不行:分享异常,Android 11及以上系统需使用FileProvider方式分享 微信分享失败(不讲码德),请参考:https://www.jianshu.com/p/05c83a83d876

有具体的代码。

QQ篇


分享功能存储权限适配官方文档:https://wiki.connect.qq.com

在这里插入图片描述

QQ 适配起来就很顺畅,没啥大问题,赞!,FileProvider 和微信用一个xml 注意加的位置就行

<provider

android:name=“androidx.core.content.FileProvider”

android:authorities=“${PACKAGE_NAME}.fileprovider”

android:exported=“false”

android:grantUriPermissions=“true”>

<meta-data

android:name=“android.support.FILE_PROVIDER_PATHS”

android:resource=“@xml/file_paths” />

微博篇


sinaweibosdk/weibo_android_sdk,github 地址:https://github.com/sinaweibosdk/weibo_android_sdk

在这里插入图片描述

具体的适配在这个目录下面有pdf 文档,适配起来还是挺顺畅的,因为我没有多图分享,微博多图分享,如下逻辑,但是我没有在文档里面看到相关配置信息 getExternalFilesDir(null) 这个在一点配置说明,就很尴尬!!!!

if (mShareMultiImage.isChecked()) {

// 分享多图

MultiImageObject multiImageObject = new MultiImageObject();

ArrayList list = new ArrayList<>();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

String authority = this.getPackageName() + “.fileprovider”;

list.add(FileProvider.getUriForFile(this, authority, new File(getExternalFilesDir(null) + “/aaa.png”)));

list.add(FileProvider.getUriForFile(this, authority, new File(getExternalFilesDir(null) + “/ccc.JPG”)));

list.add(FileProvider.getUriForFile(this, authority, new File(getExternalFilesDir(null) + “/ddd.jpg”)));

list.add(FileProvider.getUriForFile(this, authority, new File(getExternalFilesDir(null) + “/fff.jpg”)));

list.add(FileProvider.getUriForFile(this, authority, new File(getExternalFilesDir(null) + “/ggg.JPG”)));

list.add(FileProvider.getUriForFile(this, authority, new File(getExternalFilesDir(null) + “/eee.jpg”)));

list.add(FileProvider.getUriForFile(this, authority, new File(getExternalFilesDir(null) + “/hhhh.jpg”)));

list.add(FileProvider.getUriForFile(this, authority, new File(getExternalFilesDir(null) + “/kkk.JPG”)));

} else {

list.add(Uri.fromFile(new File(getExternalFilesDir(null) + “/aaa.png”)));

list.add(Uri.fromFile(new File(getExternalFilesDir(null) + “/ccc.JPG”)));

list.add(Uri.fromFile(new File(getExternalFilesDir(null) + “/ddd.jpg”)));

list.add(Uri.fromFile(new File(getExternalFilesDir(null) + “/fff.jpg”)));

list.add(Uri.fromFile(new File(getExternalFilesDir(null) + “/ggg.JPG”)));

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

最后笔者收集整理了一份Flutter高级入门进阶资料PDF

以下是资料目录和内容部分截图



里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。

内容部分截图

[外链图片转存中…(img-ZRhBt7To-1712063041862)]
[外链图片转存中…(img-Zj3rTb9a-1712063041862)]
里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。

[外链图片转存中…(img-wIH4zUbX-1712063041862)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值