name="com.tencent.plus.ImageActivity"/>
设置头像失败将在SDK自带的界面上提示用户重试,但可以指定设置成功后将跳转到哪个Activity。
若不指定,则返回上一个Activity。
setAvatar的接口格式如下:
◆setAvatar(Activityactivity,Bundleparams)
◆setAvatar(Activityactivity,Bundleparams,IUiListenerlistener)
◆setAvatar(Activityactivity,Bundleparams,IUiListenerlistener,intenterAnim,intexitAnim)
注意:
1.V1.6版本支持传入IUiListener,用于获得设置头像成功或者出错的通知。
如果传入了IUiListener,则无需在Params中传入ReturnActivity,跳转逻辑在IUiListener#onComplete的实现中完成;
2.setAvatar(Activityactivity,Bundleparams)已经不推荐使用,请更换为支持IUiListener的版本;
3.V1.6版还提供了切换动画的支持(enterAnim和exitAnim),其值为动画的资源文件(XML),可以查看Demo文件夹中的/res/anim/zoomin.xml和zoomout.xml获得详细示例。
setAvatar的调用示例如下:
privatevoidonClick(){
if(mTencent.isSessionValid()&&mTencent.getOpenId()!
=null){
Bundleparams=newBundle();
params.putString(Constants.PARAM_AVATAR_URI,
"xxx");
params.putString(Constants.PARAM_AVATAR_RETURN_ACTIVITY,"com.tencent.sample.ReturnActivity");
//注意:
SDK1.4不支持传入listener,该参数是V1.6新增的
mTencent.setAvatar(this,params,newBaseUiListener());
//指定切换动画的调用形式(V1.6新增)
mTencent.setAvatar(this,params,newBaseUiListener(),
R.anim.zoomin,R.anim.zoomout);
}
}
基本流程是:
(1)判断用户是否存在登录态并且是否获取了openid;
(2)创建一个Bundle,并填入必要参数;
(3)调用SDK中Tencent类的setAvatar方法,启动设置头像界面。
下面的表格是设置QQ头像API的params参数说明:
参数
是否必传
类型
参数说明
Constants.PARAM_AVATAR_URI
必传
String
将要设置为QQ头像的图片的本地路径,不支持网络图片,不支持动态图(gif),如果传入gif格式的图片,则只显示和使用第一帧的画面
Constants.PARAM_AVATAR_RETURN_ACTIVITY
可选
String
指定设置QQ头像成功后,将要跳转到的Activity,值为包括完整包名的Activity的类名字符串,默认将返回到上一个Activity
注意:
这是个V1.3的旧参数,不建议再使用,如果要接收设置头像的回调,请传入IUiListener参数
1.4增量授权
通过调用Tencent类的reAuth函数进行授权。
当应用调用API返回没有权限(返回码为100030)时,可以调用增量授权函数让用户重新进行授权。
调用时所使用的参数跟登录是一样的,只是在授权页面那里只会显示要增量授权的项,即所传的scope参数。
注意:
这里的scope参数跟登录时所传的scope参数作用是不一样的,这里只需要传需要增量授权的项,即用户之前没有授权的项。
一般来说,就是前面调用失败的那个API的scope。
调用增量授权的示例代码如下:
//调用"add_topic"API的listener
IUiListenerlistener=newBaseUiListener(){
@Override
protectedvoiddoComplete(JSONObjectresponse,Objectstate){
intret=response.getInt("ret");
if(ret==100030){
//这里进行增量授权的操作
if(mNeedReAuth){
Runnabler=newRunnable(){
publicvoidrun(){
mTencent.reAuth(MainActivity.this,"add_topic",newBaseUiListener());
}
};
MainActivity.this.runOnUiThread(r);
}
}
}
};
调用增量授权接口的参数说明如下:
参数
参数说明
activity
调用者activity。
应用使用SDK时,会从应用自己的Activity跳转到SDK的Activity,应用调用SDK的Activity即为这里的调用者activity。
scope
应用需要用户增量授权权限,由“,”分隔。
例如:
SCOPE=“get_simple_userinfo,add_topic”;
listener
回调接口,IUiListener实例。
1.5分享消息到QQ
分享消息到QQ的接口,可将新闻、图片、文字等分享给QQ好友、群和讨论组。
Tencent类的shareToQQ函数可直接调用,不用用户授权。
调用将打开分享的界面,用户选择好友、群或讨论组之后,点击确定即可完成分享,并进入与该好友进行对话的窗口。
本接口支持3种模式,每种模式的参数设置不同,下面分别进行介绍:
(1)分享图文消息
调用分享接口的示例代码如下:
privatevoidonClickShare(){
finalBundleparams=newBundle();
params.putInt(Tencent.SHARE_TO_QQ_KEY_TYPE,Tencent.SHARE_TO_QQ_TYPE_DEFAULT);
params.putString(Tencent.SHARE_