一、准备资料
记得去QQ开发平台获取: 获取app开发资质,http://open.qq.com/
a. QQ官网资料地址
b.下载 分享jar包:{全量包:open_sdk_r****.jar,基础包:open_sdk_r****_lite.jar}
有基础包和全量包,这里只是用的基础包。因为只有分享功能。
c:导入jar包:open_sdk_r5756_lite.jar
二、开发相关(没获取app资质前有测试的AppId)
相关代码:
1.复制官网的的分享接口代码:
public void share(View view)
{
Bundle bundle = new Bundle();
//这条分享消息被好友点击后的跳转URL。
bundle.putString(Constants.PARAM_TARGET_URL, "http://connect.qq.com/");
//分享的标题。注:PARAM_TITLE、PARAM_IMAGE_URL、PARAM_ SUMMARY不能全为空,最少必须有一个是有值的。
bundle.putString(Constants.PARAM_TITLE, "我在测试");
//分享的图片URL
bundle.putString(Constants.PARAM_IMAGE_URL,
"http://img3.cache.netease.com/photo/0005/2013-03-07/8PBKS8G400BV0005.jpg");
//分享的消息摘要,最长50个字
bundle.putString(Constants.PARAM_SUMMARY, "测试");
//手Q客户端顶部,替换“返回”按钮文字,如果为空,用返回代替
bundle.putString(Constants.PARAM_APPNAME, "??我在测试");
//标识该消息的来源应用,值为应用名称+AppId。
bundle.putString(Constants.PARAM_APP_SOURCE, "星期几" + AppId);
mTencent.shareToQQ(this, bundle , listener);
}
特别注意:一定要添加以下代码,才可以从回调listener中获取到消息。(我并没有加下面的代码,而是建立了一个监听类)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (null != mTencent)
mTencent.onActivityResult(requestCode, resultCode, data);
}
2.以上是官网的,下面是我自己修改过的,我在相关方法里添加了监听类
private void share(View view) {
Tencent mTencent = Tencent.createInstance(QQ_SHARE_KEY, getActivity());
ShareListener myListener = new ShareListener();//添加监听类
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, shareContent.getTitle());
params.putString(QQShare.SHARE_TO_QQ_SUMMARY,shareContent.getContent());
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, shareContent.getURL());
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, shareContent.getPicResource());
mTencent.shareToQQ(getActivity(), params, myListener);
}
private class ShareListener implements IUiListener {
@Override
public void onCancel() {
// TODO Auto-generated method stub
Toast.makeText(x.app().getApplicationContext(), "分享取消", Toast.LENGTH_SHORT).show();
// MainActivity.this.toast("分享取消");
}
@Override
public void onComplete(Object arg0) {
// TODO Auto-generated method stub
Toast.makeText(x.app().getApplicationContext(), "分享成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(UiError arg0) {
// TODO Auto-generated method stub
Toast.makeText(x.app().getApplicationContext(), "分享出错", Toast.LENGTH_SHORT).show();
}
}
3.这里我新建了一个分享的实体的抽象实体类,因为分享是一个公共的模块,方便调用的模块传public abstract class ShareContent implements Serializable {
public abstract int getShareWay();
public abstract String getContent();
public abstract String getTitle();
public abstract String getURL();
public abstract String getPicResource();
public abstract Bitmap getBitmap();
public abstract void setBitmap(Bitmap bitmap);
}