com.tencent.tauth.Tencent.setAvatar
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常见问题及公共返回码说明。