1. QQ分享

1.1 申请AppID

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

1.2 搭建环境

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

                                        

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

混淆配置

-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文件

混淆配置

-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应用

更多相关文章

  1. Android(安卓)Studio 配置签名
  2. adb常用命令
  3. UE4-打包安卓报错 /Android/APK\gradle\rungradle.bat" :app:a
  4. Unity3D接入微信开放平台SDK(有Unity demo工程下载)
  5. android src 各个版本源码下载
  6. Android配置环境变量
  7. android实现gradle动态依赖打包
  8. [置顶] 实现android应用程序自动打包(Ant+proguard+签名)
  9. android 多线程下载 显示进度 速度

随机推荐

  1. 安卓布局详细
  2. https://developers.google.com/chrome/m
  3. android中使用wakelock
  4. 一个很有深度的Android Blog
  5. Android 新手入门指导
  6. android 签名
  7. Android studio生成APK打包,修改生成APK的
  8. Android 支持的文件类型
  9. Android控件属性大全
  10. Step Detector and Step Counter Sensors