一般在项目中会导入友盟统计,友盟还有其他一些功能,例如第三方授权
这里就说一下微信授权的问题,再此记录一下
首先授权,
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();
}
};