1. QQ分享

1.1 申请AppID

直接在腾讯开放平台申请就可以了。

1.2 搭建环境

直接去SDK下载界面下载,下载后拷贝jar包到libs目录
配置AndroidManifest.xml文件

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><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**********" /></intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="orientation|keyboardHidden|screenSize" />

其中,把**********换成你的AppID

<data android:scheme="tencent**********" />

混淆配置

-dontwarn com.tencent.**
-keep class com.tencent.** {*; }

1.3 QQ分享

创建一个链接分享

Tencent mTencent = Tencent.createInstance(appId, context);final Bundle params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
params.putString(QQShare.SHARE_TO_QQ_TITLE, "要分享的标题");
params.putString(QQShare.SHARE_TO_QQ_SUMMARY,  "要分享的摘要");
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,  "http://www.qq.com/news/1.html");
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,"https://www.baidu.com/img/bd_logo1.png");mTencent.shareToQQ(activity, params, null);

如果是本地图片,可以用QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL
其它分享可参考资料:腾讯开放平台-Android_Api调用说明

2. 微信分享

不得不说,微信分享比QQ分享的坑大了很多。

2.1 申请AppID

创建APP应用时,需要输入应用签名,搞了半天才终于明白是怎么回事。
在微信开放平台的Android资源下载,下载签名生成工具。把这个apk和你的应用安装到同一设备下,并输入应用的包名。

2.2 搭建环境

build.gradle中添加依赖

dependencies {... ...implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.1.6'... ...
}

配置AndroidManifest.xml文件

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

混淆配置

-keep class com.tencent.mm.opensdk.** {*;
}
-keep class com.tencent.wxop.** {*;
}
-keep class com.tencent.mm.sdk.** {*;
}

2.3 微信分享

创建一个链接分享

private static final int THUMB_SIZE = 150;IWXAPI api = WXAPIFactory.createWXAPI(context, appId, true);WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = url; // 链接WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = title; // 标题
msg.description = desc; // 描述SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = System.currentTimeMillis() + "";
req.message = msg;req.scene = SendMessageToWX.Req.WXSceneTimeline; // 分享到微信朋友圈
// req.scene = SendMessageToWX.Req.WXSceneSession; // 分享到微信好友
mApi.sendReq(req)

分享链接时,分享内容可以包含图片,不过这也是个坑点。图片必须在32K以下,而且还要指定宽高,否则极易发生“checkArgs fail, thumbData is invalid”的错误,让人找不着北。

Bitmap bmp = BitmapFactory.decodeResource(App.instance().getResources(), R.drawable.share);
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
if (thumbBmp != null) {msg.thumbData = bmpToByteArray(thumbBmp, true);
}private byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {ByteArrayOutputStream output = new ByteArrayOutputStream();bmp.compress(Bitmap.CompressFormat.PNG, 100, output);if (needRecycle) {bmp.recycle();}byte[] result = output.toByteArray();try {output.close();} catch (Exception e) {}return result;
}

其他分享可参考资料:微信开放平台-Android应用

Android QQ和微信分享相关推荐

  1. Android应用实现微信分享(微信好友,朋友圈),分享链接,图片,文字

    科技快讯 9月2日晚间,华为终端宣布,将于10月16日在德国慕尼黑发布华为 Mate 10 新机.从放出的海报来看,证实了华为 Mate 10 将搭载自家的麒麟970处理器,并采用时下流行的全面屏设计 ...

  2. android QQ登录与分享

    android QQ登录与分享 android QQ登录与分享是我们一个很常见的功能,除了微信登录.QQ登录.还有微博登录,外加上分享,今天就分享一下android的QQ分享与登录,我这里H5开发的和 ...

  3. android开发微信分享功能,Android编程实现微信分享信息的方法

    本文实例讲述了Android编程实现微信分享信息的方法.分享给大家供大家参考,具体如下: 随着微信越来越火,越来越多的应用要求有分享到微信的功能.虽然有很多平台都帮集成有分享功能,比如友盟.但是个人觉 ...

  4. android qq功能实现原理,Android QQ、微信聊天消息界面设计原理与实现

     Android QQ.微信聊天消息界面设计原理与实现 原理:Android平台上,典型的以腾讯的QQ.微信这些聊天消息界面通常可以采用ListView设计与实现,需要使用ListView 适配器 ...

  5. 自定义QQ和微信分享卡片

    本文介绍自定义微信分享卡片和自定义QQ分享卡片分别所用的两种方式,完整代码链接放在文章末尾. 自定义分享卡片有两种方式:通过JS-SDK实现和通过修改meta标签实现. 实践证明,使用JS-SDK的方 ...

  6. android sdk引入 微信分享_Android 微信SDK分享功能中的最全过程步骤分析

    在前面有一章已经分析过怎么用官方的demo分享微信信息了,在这里我就不再多说,其中关于在自己应用分享说得很简单,本文作者也是经过一番折腾才弄成功,为了以后让大家都少走弯路,决定在这里从头到尾介绍怎么在 ...

  7. android sdk引入 微信分享_Android分享 ShareSDK微信分享详解

    本文转载自: http://www.it165.net/pro/html/201508/50793.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 目前市面上大大小小的软件,几乎 ...

  8. Android QQ、微信聊天消息界面设计原理与实现

     原理:Android平台上,典型的以腾讯的QQ.微信这些聊天消息界面通常可以采用ListView设计与实现,需要使用ListView 适配器Adapter的getItemViewType()和g ...

  9. android sdk引入 微信分享_微信分享sdk接入总结

    本文主要讲解android微信分享sdk的接入和中级遇到的一些问题解决. 首先需要在微信开放平台申请账号,新建一个应用,生成AppID. 1 下载微信SDK sample demo源码和生成签名的工具 ...

最新文章

  1. Ubuntu 12.04 64bit上安装Apache Traffic Server 4.1.2
  2. 5G技术与触觉互联网,一个全新的世界
  3. 关于Fast Terrain Rendering Using Geometrical MipMapp
  4. 花式云毕业:《我的世界》建大学,日本机器人替身领证 | 网友:搞点阳间的东西...
  5. socket sock inet_sock 等关系
  6. Python用MySQLdb, pymssql 模块通过sshtunnel连接远程数据库
  7. 深入探究ConvNets vs. Transformers,哪种预训练模型的可迁移性更好?
  8. python基础语法类型_Python基础入门语法和变量类型(一)
  9. 视频 | 为何我对小鹏NGP“半信半疑”
  10. java aes解密算法_使用java实现AES算法的加解密(亲测可用)
  11. Oracle不能加载OCI.DLL的解决方案
  12. 【报告分享】中国营销数字化行业趋势报告:全渠道时代,品牌商如何抓住消费者?(附下载链接)...
  13. 解决cmd命令行窗口和 powershell 汉字显示乱码问题
  14. 矩阵链乘——动态规划
  15. java定义一个getsize方法_java.util.zip.ZipEntry.getSize()方法示例
  16. 中级软件设计师知识点总结
  17. noi linux,NOI Linux使用教程(基础讲解)
  18. java中412是什么错_HTTP 412 错误 – 先决条件失败 (Precondition
  19. ActiveMQ--CVE-2015-5254
  20. android 阻尼动画,Android下拉阻尼效果实现原理及简单实例

热门文章

  1. Sidecar及流量拦截机制-上
  2. [C++ Primer] C4
  3. 阿里云点播集成播放器的SDK时遇到的黑屏有声音的问题
  4. linux之强大的sed
  5. 白嫖steam游戏,我是专业的
  6. 物联网工程实训 第 4天
  7. 教你怎么把heic格式转化jpg
  8. 续航时间长的蓝牙耳机有哪些?续航时间超长的蓝牙耳机测评
  9. Parkinson‘s Freezing of Gait Prediction- baseline 学习
  10. 8、HTML基础——图片元素