android友盟微信重新授权问题(包括获取用户信息)

一般在项目中会导入友盟统计,友盟还有其他一些功能,例如第三方授权

这里就说一下微信授权的问题,再此记录一下

  首先授权,

UMShareAPI.get(context).doOauthVerify(   )      
之后在授权成功的回调方法中获取用户的信息
UMShareAPI.get(context).getPlatformInfo();

如果是授权一次的话上面的代码能解决,如果是微信客户端中切换账户呢,那就需要检测是否已经授权,已经授权的话,需要解绑之后才能重新授权

boolean isauth=UMShareAPI. get ( mContext ).isAuthorize( mActivity , weixin );

if ( isauth ) {//删除授权
UMShareAPI. get ( mContext ).deleteOauth( mActivity ,weixin , authListener );
} else {
UMShareAPI. get ( mContext ).doOauthVerify( mActivity ,weixin , authListener );
}
UMAuthListener authListener = new UMAuthListener() {
/**
* @desc 授权开始的回调
* @param platform 平台名称
*/
@Override
public void onStart(SHARE_MEDIA platform) {
SocializeUtils. safeShowDialog ( dialog );
}

/**
* @desc 授权成功的回调
* @param platform 平台名称
* @param action 行为序号,开发者用不上
* @param data 用户资料返回
*/
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map data) {
SocializeUtils. safeCloseDialog ( dialog );
Toast. makeText ( mContext , " 成功了 " , Toast. LENGTH_LONG ).show();
notifyDataSetChanged();
}

/**
* @desc 授权失败的回调
* @param platform 平台名称
* @param action 行为序号,开发者用不上
* @param t 错误原因
*/
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
SocializeUtils. safeCloseDialog ( dialog );
Toast. makeText ( mContext , " 失败: " + t.getMessage(), Toast. LENGTH_LONG ).show();
}

/**
* @desc 授权取消的回调
* @param platform 平台名称
* @param action 行为序号,开发者用不上
*/
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
SocializeUtils. safeCloseDialog ( dialog );
Toast. makeText ( mContext , " 取消了 " , Toast. LENGTH_LONG ).show();
}
};

你可能感兴趣的:(android友盟微信重新授权问题(包括获取用户信息))