导航:首页 > APP软件 > 安卓开发微信分享

安卓开发微信分享

发布时间:2023-08-29 02:08:40

❶ 解决Android11上分享图片失败,微信提示需要使用FileProvider

先看下微信分享错误的提示:

看到这个错误大家第一个可能会想到FileProvider我在AndroidManifest早已配置过了,但是配置了是你可以使用FileProvider存储了应用间共享文件,但是在并不代表你使用了FileProvider,然后了解问题我们就要先了解一个概念 分区存储

Android 10之前,外部存储区的内容主要以两种形式:

在Android 10 中,Google首次引入了 分区存储 ,将公共区域划分成了不同的集合,并且在媒体文件和其他文档之间建立了清楚的分割。经过划分之后应用不可以随意访问外部存储区中的文件,而只能访问媒体文件。

Android 11 (API 级别 30) 进一步增强了平台功能,为外部存储中的应用和用户数据提供了更好的保护。
从 Android 11 开始,使用 分区存储模式 的应用即使拥有 READ_EXTERNAL_STORAGE 权限,也无法再访问外部存储中的任何其他应用的 专属目录 中的文件

受到这一限制的影响,如果你的应用通过第三方 SDK 分享文件 ( 例如分享照片给另一应用上的好友 ) 到其他应用,而这只是将自己专属目录中的文件路径传递给目标应用,目标应用将无法读取该文件。部分分享 SDK 可能没有正确处理这种情形,没有显式报错而只是静默失败 (对方用户都没有意识到这次分享),影响开发者和用户的体验。

FileProvider是Android7就提出的应用间共享文件适配方式,而目前大多数应用和SDK都具备这中方式
如果您的应用需要在 Android 11 上向其他应用分享文件,请检查您使用的第三方分享 SDK 是否支持通过 FileProvider 进行分享 (现在大部分常用的第三方分享 SDK 均已支持)。通过 FileProvider,您的应用能够允许第三方应用读取所分享的文件,而不会受到分区存储的限制

这里微信已经支持通过了FileProvider形式进行分享了,我们可以直接调用

在项目的AndroidManifest.xml添加相关配置,示例如下:

在res/xml目录(如果没有xml目录,则新建一个)下,添加文件file_provider_paths.xml,内容如下:

external-files-path表示通过 Context.getExternalFilesDir(null) 接口获取到的目录下的文件才可被共享,其他未配置的路径均不可被分享。 同样的节点可以配置多个,以支持多个不同的子目录 ,如下所示:

将路径通过FileProvider的接口转换成 content://URI 形式,示例如下:

参考文档 OpenSDK支持FileProvider方式分享文件到微信

❷ 用 微信的 android SDK 怎么分享信息 到微信

用 微信的 android SDK分享信息到微信,方法如下:
1、第一步:登录微信开放平台,必须注册了开发者账号,然后在开放平台添加用于分享信息到微信的Android应用,例如:网络知道APP

2、添加的应用必须审核通过,然后会获取一个APP_ID和一个APP_SECRET,用于在Android应用中使用

3、在微信开发平台“资源下载页面”下载对应的SDK库文件,同时可以下载一个Demo案例

4、想要成功分享信息到微信,比如在Eclipse开发完Android应用后,使用自定义的签名对APP进行签名,然后将签名字符串填写到微信开放平台审核的应用中(这一步很重要),否则频繁闪退,分享信息失败!

❸ Unity 微信登录分享ShareSDK对接流程

官方文档: MobTech ShareSDK文档

ShareSDK可用于多个平台登录和分享,无需再用服务端,本文主要介绍安卓端使用ShareSDK,进行微信登录和分享。
当时使用的是Unity2019.4.5,gradle版本4.0.0。

1、到微信开发平台申请创建应用,申请通过后获得appId,appSecret;
2、到MobTech平台创建应用,获得appKey,appSecret;

按照官方文档步骤对接即可;

1、launcherTemplate.gradle文件,把需要的各平台的appId和appSecret写在里面,在ShareSDKDevInfo.cs里面更改是无效的。
以微信平台为例:

2、如果微信应用正在申请,测试可使用Mob官方demo进行测试:
demo应用包名:cn.sharesdk.demo;

demokey.keystore密钥密码和别名密码,均为123456;

demo应用,Mob的appKey:moba0b0c0d0,appSecret:;

demo应用,微信的appId:wx4868b35061f87885,appSecret:;

3、不需要的平台,可以在ShareSDKDevInfo.cs里的DevInfoSet中注释掉;

1、场景中挂载ShareSDK.cs和MobSDK.cs;
2、使用前,必须要提交ShareSDK隐私协议的授权接口:

3、微信登录,使用ShareSDK的获取用户信息接口即可(只会在第一次跳转到第三方平台进行授权),返回结果包含openId,unionId,nickName等信息:

4、微信分享:

阅读全文

与安卓开发微信分享相关的资料

热点内容
华为应用里面有了app说明什么 浏览:801
数据库中xy是什么意思 浏览:893
u盘打不开提示找不到应用程序 浏览:609
网站功能介绍怎么写 浏览:954
word在试图打开文件时错误 浏览:108
主板无vga插槽怎么连接编程器 浏览:521
录视频文件在哪里删除 浏览:881
word2013如何插入文件 浏览:233
proe教程百度网盘 浏览:197
如何控制远程linux服务器 浏览:740
it教学app有哪些 浏览:34
怎么在ps抠的图变成矢量文件 浏览:405
口袋妖怪银魂安卓v11 浏览:1
网站上芒果tv的账号都是什么 浏览:104
带公式的表格如何刷新数据 浏览:81
数据标注语音和2d哪个好 浏览:145
保存excel文件的方法 浏览:655
手机上看不到电脑上的文件 浏览:626
关于ps的微信公众号 浏览:612
矩阵论教程 浏览:971

友情链接