Android 分享小结
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。

一、导读
我们继续总结学习,温故知新。
鉴于前阵子有人问到分享相关的功能,说不知道在哪里注册,本文做一个收集整理。
本文主要介绍QQ、微信、新浪微博、支付宝、钉钉等几个国内主流三方分享平台,以及一些聚合分享平台。
二、微信 分享
微信开发平台
Android接入指南
- 注册 > 获取应用APPID
- 接入sdk
在build.gradle中添加
dependencies {api 'com.tencent.mm.opensdk:wechat-sdk-android:+'
}
项目的根 build.gradle 文件中,添加如下代码
buildscript {repositories {jcenter() // 原有 jCenter 引用可继续保留mavenCentral()}
}allprojects {repositories {jcenter() // 原有 jCenter 引用可继续保留mavenCentral()}
}
配置AndroidManifest
- 接收微信的请求及返回值
在你的包名相应目录下新建一个 wxapi 目录,并在该 wxapi 目录下新增一个 WXEntryActivity 类,该类继承自 Activity
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {private IWXAPI api;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);api = WXAPIFactory.createWXAPI(this, CorePackageConfig.APPINFO.WEIXIN_APPID, false);try {Intent intent = getIntent();api.handleIntent(intent, this);} catch (Exception e) {}}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {// 微信发送请求到第三方应用时,会回调到该方法}@Overridepublic void onResp(BaseResp baseResp) {}}
mani
<activityandroid:name=".wxapi.WXEntryActivity"android:label="@string/app_name"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:exported="true"android:taskAffinity="填写你的包名"android:launchMode="singleTask">
</activity>
添加混淆
- 调试
private final IWXAPI iwxapi;/*** 分享文本*/@Overridepublic void shareText(Activity activity, Entity Entity, ShareListener listener) {String shareText = Entity.getDesc();if (TextUtil.isEmpty(shareText)) {return;}WXTextObject textObj = new WXTextObject();textObj.text = shareText;WXMediaMessage msg = new WXMediaMessage();msg.mediaObject = textObj;msg.description = shareText;SendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = buildTransaction("text");req.message = msg;req.scene = getSendScene(Entity.getShare_type());iwxapi.sendReq(req);addOnStarListener(listener);}
三、 QQ 、QQ空间(Qzone) 分享
QQ互联官网
文档资料
- 注册 > 获取应用APPID
- 下载sdk
- 接入sdk
将下载好的 open_sdk_xxx_lite.jar 拷贝到 lib目录下
在build.gradle中添加
dependencies {implementation fileTree(dir: 'libs', include: '*.jar')
}
配置AndroidManifest
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><application><activityandroid:name="com.tencent.tauth.AuthActivity"android:noHistory="true"android:launchMode="singleTask" ><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="tencent你的AppId" /></intent-filter></activity>
<activityandroid:name="com.tencent.connect.common.AssistActivity"android:configChanges="orientation|keyboardHidden"android:screenOrientation="behind" android:theme="@android:style/Theme.Translucent.NoTitleBar" /><application>
- 调试
public class QQShareMediaAction {private final Tencent mTencent;public QQShareMediaAction(Activity activity) {mTencent = Tencent.createInstance(qqAppId(), activity.getApplicationContext(), "");}/*** 分享文本* QQ不支持分享纯文本*/public void shareText(Activity activity, ShareEntity ShareEntity, ShareManager.CustomShareListener listener) {shareWeb(activity, ShareEntity, listener);}/*** 分享图片* 只支持本地图片*/public void shareImage(Activity activity, ShareEntity ShareEntity, ShareManager.CustomShareListener listener) {String shareImgUrl = ShareEntity.getImg_url();if (ShareTextUtil.isEmpty(shareImgUrl) || !limitSize(ShareEntity.getImg_url(), listener)) {return;}Bundle params = new Bundle();params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_IMAGE);params.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, shareImgUrl);mTencent.shareToQQ(activity, params, listener);addOnStarListener(listener);}}
四、新浪微博
登录 新浪微博开放平台
移动客户端接入说明
Android SDK文档
授权回调页、取消授权回调页设置在应用信息—>高级信息,iOS应用具体位置参考下图注意这里的授权回调页需要和代码中的redirectURL参数保持一致bundle ID设置注意和工程保持一致
五、钉钉
登录 钉钉开放平台
钉钉分享介绍
六、支付宝
支付宝开放平台
使用支付宝账号登录,注册APP,点击应用 > 在功能信息中添加分享功能 > 最后申请上线审核,通过即可
七、企业微信
企业微信官方平台
要使用企业微信分享功能模块,需要先在企业微信官方平台注册企业账号,并建立iOS或者安卓端应用,启用 “企业微信授权登录” 接口
八、聚合分享平台
如umeng,极光等一些国内聚合的分享。
九、 推荐阅读
Java 专栏
SQL 专栏
数据结构与算法
Android学习专栏

相关文章:
Android 分享小结
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、微信 分享 三、 QQ 、QQ空间(Qz…...
Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 仿真平台配置
一、依赖安装 sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk pip2 install pandas jinja2 pyserial cerberus pyulog0.7.0 n…...
JVM 命令行监控及诊断工具
面试题 你使用过Java虚拟机性能监控和故障处理工具吗?(美图) 怎么打出线程栈信息。(字节跳动) JVM诊断调优工具用过哪些? (京东) 怎么获取 Java 程序使用的内存?堆使用…...
飞天使-linux操作的一些技巧与知识点2
TCP 的三次握手 第一次,客户端与服务端建立链接,需要发送请求连接的消息 第二次,服务端接口到数据后,返回一个确认的操作*(至此客户端和服务端链路建立成功) 第三次,服务端还需要发送要与客户端…...
Android : 篮球记分器app _简单应用
示例图: 1.导包 在build.gradle 中 加入 // 使用androidx版本库implementation androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03 2. 开启dataBinding android{...// 步骤1.开启data bindingdataBinding {enabled true}...} 3.写个类继承 ViewModel pac…...
音视频之旅 - 基础知识
图像基础知识 像素 像素是图像的基本单元,一个个像素就组成了图像。你可以认为像素就是图像中的一个点。在下面这张图中,你可以看到一个个方块,这些方块就是像素 分辨率 图像(或视频)的分辨率是指图像的大小或尺寸。…...
分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测
分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测 目录 分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类…...
如何使用 Zotero 导出所选条目的 PDF 文件
如何使用 Zotero 导出所选条目的 PDF 文件 Zotero 是一款强大的参考文献管理工具,但它并不直接提供将整个文件夹导出为 PDF 的选项。不过,您可以使用以下步骤来导出您所选的 Zotero 条目中的 PDF 文件,无需额外的插件。 选择所需的 Zotero 条…...
minio的k8s的单机部署
minio的k8s的单机部署 apiVersion: apps/v1 kind: Deployment metadata:name: minionamespace: itshare spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioimage: minio/minio:RELEASE.2022-10-15T19-57-03Z…...
Git 更改remote repo 地址
Git 更改remote repo 地址 我们想更换远程 repo 地址, 因为我们仓库更换了名称. git remote rename origin 查看现在的 romote 地址 # 查看 remote 地址 git remote -v origin gitgitee.com:changyubiao/attrdict.git (fetch) origin gitgitee.com:changyubiao/attrdict.gi…...
24、文件上传漏洞——Apache文件解析漏洞
文章目录 一、环境简介一、Apache与php三种结合方法二、Apache解析文件的方法三、Apache解析php的方法四、漏洞原理五、修复方法 一、环境简介 Apache文件解析漏洞与用户配置有密切关系。严格来说,属于用户配置问题,这里使用ubantu的docker来复现漏洞&am…...
使用Go快速开发TCP公共服务
使用Go快速开发TCP公共服务 文章目录 使用Go快速开发TCP公共服务一、前言二、实现思路三、源码四、测试使用五、最后 一、前言 之前使用的公共TCP服务无法使用了,想了一下整个实现原理不是很复杂,就利用Go快速开发了一个,利用公网服务器可以…...
QEMU环境调试方法
目录 1.如何查看makefile构建过程执行的命令? 2.如何使用GCC生成C程序的宏展开文件? 3.如何在qemu中执行特定的可执行程序? 4.如何在qemu中直接运行可执行程序? 5.如何在qemu中调试某个可执行程序? 本文从调试的角…...
京东数据运营(京东API接口):10月投影仪店铺数据分析
鲸参谋监测的京东平台10月份投影仪市场销售数据已出炉! 10月份,环同比来看,投影仪市场销售均上涨。鲸参谋数据显示,今年10月,京东平台投影仪的销量为16万,环比增长约22%,同比增长约8%࿱…...
Aloha 机械臂的学习记录2——AWE:AWE + ACT
继续下一个阶段: Train policy python act/imitate_episodes.py \ --task_name [TASK] \ --ckpt_dir data/outputs/act_ckpt/[TASK]_waypoint \ --policy_class ACT --kl_weight 10 --chunk_size 50 --hidden_dim 512 --batch_size 8 --dim_feedforward 3200 \ --n…...
Spring Boot 项目的创建、配置文件、日志
文章目录 Spring Boot 优点创建 Spring Boot 项目创建项目认识目录网页创建(了解) 约定大于配置Spring Boot 配置文件配置文件格式读取配置项properties 配置文件yml 配置文件基本语法进阶语法配置对象配置集合yml 设置不同环境的配置文件 Spring Boot 日…...
MySQL:drop、delete与truncate区别
一、用法不同 1、drop(丢弃数据): drop table 表名 ,直接将表都删除掉,在删除表的时候使用。 2、truncate (清空数据) : truncate table 表名 ,只删除表中的数据,再插入数据的时候自增长 id 又从 1 开始,在清空表中数…...
2024年顶级的9个 Android 数据恢复工具(免费和付费)
不同的事情可能会损坏您的Android手机并导致您丢失数据。但大多数时候,您可以使用取证工具恢复部分或全部文件。 问题可能来自手机的物理损坏、磁盘的逻辑故障、完整的系统擦除,或者只是简单的粗心大意。 但是,无论数据丢失的原因是什么&am…...
c# Aspose.Cells 导出Excel表格 使用随记
/// <summary>/// 导出Excel表格/// </summary>/// <param name"list">数据集合</param>/// <param name"header">数据表头</param>/// <param name"sumColumn">求和列</param>/// <param n…...
SAP UI5 walkthrough step3 Controls
在上一步,我们是直接用index.html 中的body 里面的DIVision去输出 hello world, 在这个章节,我们将用SAP UI5 的标准控件 sap/m/Text 首先,我们去修改 webapp/index.html <!DOCTYPE html> <html> <head><…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...
网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...
使用 uv 工具快速部署并管理 vLLM 推理环境
uv:现代 Python 项目管理的高效助手 uv:Rust 驱动的 Python 包管理新时代 在部署大语言模型(LLM)推理服务时,vLLM 是一个备受关注的方案,具备高吞吐、低延迟和对 OpenAI API 的良好兼容性。为了提高部署效…...
循环语句之while
While语句包括一个循环条件和一段代码块,只要条件为真,就不断 循环执行代码块。 1 2 3 while (条件) { 语句 ; } var i 0; while (i < 100) {console.log(i 当前为: i); i i 1; } 下面的例子是一个无限循环,因…...
VUE3 ref 和 useTemplateRef
使用ref来绑定和获取 页面 <headerNav ref"headerNavRef"></headerNav><div click"showRef" ref"buttonRef">refbutton</div>使用ref方法const后面的命名需要跟页面的ref值一样 const buttonRef ref(buttonRef) cons…...
