QQ分享之andriod开发

来源:互联网 发布:液晶电视编程器那种好 编辑:程序博客网 时间:2024/05/17 04:58

一、准备资料

记得去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, "我在测试");//分享的图片URLbundle.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 0