腾讯QQ分享消息

准备工作

下载SDK资源包和相关文档,把*.jar包放在libs目录下,并点击更新同步按钮Sync project
文档来源
配置Amanifest.xml文件,添加相关权限和回调活动

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application><application>
 <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" />
            <!--这里的格式是tecent+appid-->
           <data android:scheme="tencent你的AppId" />
    </intent-filter>
 </activity>
 <activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

实现QQ分享

创建实例

不论是分享什么消息,还是分享到空间,好友,都是通过一个Tencent类实例,调用shareToQQ()方法
实例的创建很简单,参数1是申请的appId的String类型,参数2是context类

mTencent = Tencent.createInstance(appid, activity);

分享给好友

实现

文档中给出的示例代码

	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,"http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif");
    params.putString(QQShare.SHARE_TO_QQ_APP_NAME,  "测试应用222222");
    params.putInt(QQShare.SHARE_TO_QQ_EXT_INT,  "其他附加功能");		
    mTencent.shareToQQ(MainActivity.this, params, new BaseUiListener());

其中
QQShare.SHARE_TO_QQ_EXT_INT
分享额外选项,两种类型可选(默认是不隐藏分享到QZone按钮且不自动打开分享到QZone的对话框):
QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN,分享时自动打开分享到QZone的对话框。
QQShare.SHARE_TO_QQ_FLAG_QZONE_ITEM_HIDE,分享时隐藏分享到QZone按钮

不设置该项,会在分享给好友的列表中添加分享到QQ空间的选项
设置为QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN,就是直接分享到空间
设置为QQShare.SHARE_TO_QQ_FLAG_QZONE_ITEM_HIDE,会在分享到好友列表中隐藏空间选项

QQShare.SHARE_TO_QQ_APP_NAME
测试中并没有发现有用的地方

回调

分享过程中会出现成功,失败,错误三种情况
在上一步中
mTencent.shareToQQ(MainActivity.this, params, new BaseUiListener());
BaseUiListener类是实现了IUiListener接口的实现类
如果要确保回调,需要在活动的重写活动的onActivityResult()方法

 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Tencent.onActivityResultData(requestCode,resultCode,data,listener);
    }

我这里直接选择再活动中实现这个接口,

 mTencent = Tencent.createInstance("appid", this);
...
 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Tencent.onActivityResultData(requestCode,resultCode,data,this);
    }
...
 @Override
    public void onComplete(Object o) {
        ToastUtil.showToast("分享成功");
    }

    @Override
    public void onError(UiError uiError) {
        ToastUtil.showToast("分享失败,错误码"+uiError.errorCode);
    }

    @Override
    public void onCancel() {
        ToastUtil.showToast("分享取消");
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值