赞
踩
直接在腾讯开放平台申请就可以了。
直接去SDK下载界面下载,下载后拷贝jar包到libs目录
配置AndroidManifest.xml
文件
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <activity android: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.** {*; }
创建一个链接分享
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调用说明
不得不说,微信分享比QQ分享的坑大了很多。
创建APP应用时,需要输入应用签名,搞了半天才终于明白是怎么回事。
在微信开放平台的Android资源下载,下载签名生成工具。把这个apk和你的应用安装到同一设备下,并输入应用的包名。
在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.** {
*;
}
创建一个链接分享
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应用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。