分享到 :

com.tencent.tauth.Tencent.setAvatar

特别声明:出于信息安全的考虑,本接口仅对可信赖的合作应用开放。已经成功接入“QQ登录”的应用需提交申请以获取访问本接口的权限。

1. 接口说明

接口的基本流程:
(1)判断用户是否存在登录态并且是否获取了openid;
(2)创建一个Bundle,并填入必要参数;
(3)调用SDK中Tencent类的setAvatar方法,启动设置头像界面。

2. 使用场景

用户需要更改用户的QQ头像

3. 接口调用说明

3.1 接口方法

void com.tencent.tauth.Tencent.setAvatar(Activity activity, Bundle params)
void com.tencent.tauth.Tencent.setAvatar(Activity activity, Bundle params, IUiListener listener)
void com.tencent.tauth.Tencent.setAvatar(Activity activity, Bundle params, IUiListener listener, int enterAnim, int exitAnim)

3.2 注意事项

1. V1.6版本支持传入IUiListener,用于获得设置头像成功或者出错的通知。如果传入了IUiListener,则无需在Params中传入ReturnActivity,跳转逻辑在IUiListener#onComplete的实现中完成;
2. setAvatar(Activity activity, Bundle params) 已经不推荐使用,请更换为支持IUiListener的版本;
3. V1.6版还提供了切换动画的支持(enterAnim和exitAnim),其值为动画的资源文件(XML),可以查看Demo文件夹中的 /res/anim/zoomin.xml和zoomout.xml获得详细示例。
另外,设置QQ头像使用Tencent类中的setAvatar接口,setAvatar使用了一个Activity来让用户调整图片,因此要在项目的AndroidManifest.xml中增加一个Activity配置,如下:

<application>
<activity android:name="com.tencent.plus.ImageActivity" />
</application>

 
设置头像失败将在SDK自带的界面上提示用户重试,但可以指定设置成功后将跳转到哪个Activity。若不指定,则返回上一个Activity。

 3.3 参数说明

参数 是否必传  类型 参数说明
Constants.PARAM_AVATAR_URI 必传 String  头像图片的URL地址。
Constants.PARAM_AVATAR_RETURN_ACTIVITY 可选 String 指定设置QQ头像成功后,将要跳转到的Activity,值为包括完整包名的Activity的类名字符串,默认将返回到上一个Activity
注意:这是个V1.3的旧参数,不建议再使用,如果要接收设置头像的回调,请传入IUiListener参数

3.4 示例代码

private void onClick() {
	if (mTencent.isSessionValid() && mTencent.getOpenId() != null) {
		Bundle params = new Bundle();
		params.putString(Constants.PARAM_AVATAR_URI, "xxx");
		params.putString(Constants.PARAM_AVATAR_RETURN_ACTIVITY,
				"com.tencent.sample.ReturnActivity");
		// 注意:SDK 1.4 不支持传入listener, 该参数是V1.6新增的
		mTencent.setAvatar(this, params, new BaseUiListener());
		// 指定切换动画的调用形式(V1.6新增)
		mTencent.setAvatar(this, params, new BaseUiListener(),
				R.anim.zoomin, R.anim.zoomout);
	}
}

3.5 返回码说明

0: 正确
其它: 失败
OpenAPI公共错误码说明详见:Android常见问题公共返回码说明

返回顶部