QQ分享之andriod开发

一、准备资料

记得去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);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值