打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用QQ互联Android SDK 实现本地图片的QQ定向分享
使用QQ互联Android SDK 实现本地图片的QQ定向分享
分类:Android 2013-08-05 15:12 3005人阅读 (13)
androidQQSDK
本代码实现的QQ 互联SDK版本为1.6.1
在较新一版的QQ互联Android SDK 中,提供了一个定向分享的办法:
void com.tencent.tauth.Tencent.shareToQQ(Activity arg0, Bundle arg1, IUiListener arg2)
该方法可以将消息分享给指定的QQ好友。如下所示:
然而,从SDK的文档说明中,我们可以发现,该定点分享功能并不支持本地图片的分享。
Bundle 参数是否必传类型参数说明
Constants.PARAM_TARGET_URL必选String这条分享消息被好友点击后的跳转URL。
Constants.PARAM_TITLE可选String分享的标题。注:PARAM_TITLE、PARAM_IMAGE_URL、PARAM_SUMMARY不能全为空,最少必须有一个是有值的。
Constants.PARAM_IMAGE_URL可选String分享的图片URL。
Constants.PARAM_SUMMARY可选String分享的消息摘要,最长50个字。
Constants.PARAM_APP_SOURCE可选String标识该消息的来源应用,值为应用名称+AppId。
Constants.PARAM_APPNAME可选String手Q客户端顶部,替换“返回”按钮文字,如果为空,用返回代替
因此,对于想实现分享本地图片给指定好友的Android开发者,这是个非常郁闷的问题。
在这里,我有个小窍门教给大家,可以实现QQ定点分享本地图片的功能:
通过上传相册到QQ空间,获取本地图片的网络地址,再通过调用 shareToQQ(Activity arg0, Bundle arg1, IUiListener arg2)的方法实现分享图片给好友。
第一步:调用QQ登录功能
[java]
mTencent = Tencent.createInstance(AppId, this.getApplicationContext());
mTencent.login(this, Scope, listener);
第二步:调用接口上传本地图片到QQ空间[java]
String path = "/mnt/sdcard/test.jpg";
byte[] data = null;
try
{
RandomAccessFile f = new RandomAccessFile(path, "r");
data = new byte[(int)f.length()];
f.read(data);
}
catch (Exception e) {
}
Bundle b = new Bundle();
b.putByteArray("picture", data);
b.putString("photodesc", "1111111111111");
IRequestListener listener = new BaseApiListener("upload_pic", true);
mTencent.requestAsync(Constants.GRAPH_UPLOAD_PIC, b, Constants.HTTP_POST, listener, null);
这是上传成功后,回传的图片的信息
[java]
{
"ret": 0,
"height": 600,
"small_url": "http://o229.photo.store.qq.com/psb?/V10DxumN2xhOtm/EKUDoGCLJ64X7Naqiq80rLPn6be61U4GFX5cFSy*U1s!/a/dGAngIhBGgAA/DmQDAA!!&bo=IANYAgAAAAABAF4!",
"width": 800,
"lloc": "NDJ0ecqnomVN*1Hg0QsLYCeAiEEaAAA!",
"large_url": "http://o229.photo.store.qq.com/psb?/V10DxumN2xhOtm/EKUDoGCLJ64X7Naqiq80rLPn6be61U4GFX5cFSy*U1s!/b/dGAngIhBGgAA/DmQDAA!!&bo=IANYAgAAAAABAF4!",
"msg": "",
"sloc": "NDJ0ecqnomVN*1Hg0QsLYCeAiEEaAAA!",
"albumid": "V10DxumN2xhOtm"
}
第三步:在BaseApiListener的接口中,取得上传的图片的网络地址,并调用定点分享接口,将其分享给QQ好友。
[java]
try {
int ret = response.getInt("ret");
if (ret == 0)
{
String url = response.optString("large_url");
Bundle bundle = new Bundle();
bundle.putString(Constants.PARAM_TARGET_URL, url);
bundle.putString(Constants.PARAM_IMAGE_URL, url);
bundle.putString(Constants.PARAM_SUMMARY, text);
mTencent.shareToQQ(this, bundle, listener);
}
} catch (JSONException e) {
}
该参数Constants.PARAM_TARGET_URL是点击消息后跳转的地址,因此,若只是分享图片,则可将大图的网络地址赋值给它;若是分享文章等,则可将文章的链接赋值给它。最后一图为点击该分享后跳转的页面
上一篇Bitmap的回收
下一篇对android的android:taskAffinity初识
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
qq互联
Android开发与Sequoyah的安装问题
最快速的Android开发环境搭建ADT
Android SDK4.2 (API17) 开发环境的搭建
jitis-android 编译,视频聊天
Windows如何安装Android SDK
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服