您的位置:首页 > 移动开发 > 微信开发

android 微信登录

2016-05-12 13:52 399 查看
1、友盟第三方平台注册,androidmainfest添加appkey
<meta-data
android:name="UMENG_APPKEY"
android:value="56a5848f67e58e51a400021a"/>
2、添加相关的库3.代码
UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.login");
private String AppID = "wx121e78a98dc358f0";
private String AppSecret = "18e1d3ff5a2851036d33838c4412d913";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_login);
addWXPlatform();
}
/**
* @return
* @功能描述 : 添加微信平台授权登录
*/
private void addWXPlatform() {
// 注意:在微信授权的时候,必须传递appSecret
mController = UMServiceFactory.getUMSocialService("com.umeng.login");
// 添加微信平台,APP_ID、APP_SECRET都是在微信开放平台,移动应用通过审核后获取到的
UMWXHandler wxHandler = new UMWXHandler(NewLoginActivity.this, AppID, AppSecret);
if(wxHandler.isClientInstalled()){
wxHandler.setRefreshTokenAvailable(false);
wxHandler.addToSocialSDK();
}else{
Toast.makeText(NewLoginActivity.this, "请先安装微信客户端", Toast.LENGTH_SHORT).show();
}

}
case R.id.iv_wxLogin:
login(SHARE_MEDIA.WEIXIN);
break;
case R.id.exit:
logout(SHARE_MEDIA.WEIXIN);
/**
* 授权。如果授权成功,则获取用户信息
*
* @param platform
*/
private void login(final SHARE_MEDIA platform) {

mController.doOauthVerify(NewLoginActivity.this, platform,
new SocializeListeners.UMAuthListener() {

@Override
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(NewLoginActivity.this, "授权开始", Toast.LENGTH_SHORT).show();
}

@Override
public void onError(SocializeException e, SHARE_MEDIA platform) {
Toast.makeText(NewLoginActivity.this, "授权失败", Toast.LENGTH_SHORT).show();
}

@Override
public void onComplete(Bundle value, SHARE_MEDIA platform) {
// 获取uid
String uid = value.g
b569
etString("uid");
Log.e("uid", uid);
if (!TextUtils.isEmpty(uid)) {
// uid不为空,获取用户信息
getUserInfo(platform);
} else {
Toast.makeText(NewLoginActivity.this, "授权失败...", Toast.LENGTH_LONG).show();
}
}

@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(NewLoginActivity.this, "授权取消", Toast.LENGTH_SHORT).show();
}
});
}

/**
* 获取用户信息
*
* @param platform
*/
private void getUserInfo(SHARE_MEDIA platform) {
mController.getPlatformInfo(NewLoginActivity.this, platform,
new SocializeListeners.UMDataListener() {
@Override
public void onStart() {
}

@Override
public void onComplete(int status, Map<String, Object> info) {
if (info != null) {
String nickname = (String) info.get("nickname");
String openid = (String) info.get("openid");
Log.e("openid", openid);
String headimgurl = (String) info.get("headimgurl");
mSp.edit().putBoolean("isWxLogin", true).commit();
mSp.edit().putString("nickname", nickname).commit();
mSp.edit().putString("openid", openid).commit();
mSp.edit().putString("headimgurl", headimgurl).commit();
Intent intent = new Intent(NewLoginActivity.this, IndexActivity.class);
startActivity(intent);
finish();
}
}
});
}
 /*** 注销本次登陆* @param platform*/private void logout(final SHARE_MEDIA platform) {mController.deleteOauth(NewLoginActivity.this, platform,new SocializeListeners.SocializeClientListener() {@Overridepublic void onStart() {}@Overridepublic void onComplete(int status, SocializeEntity entity) {mSp.edit().putString("nickname", "").commit();mSp.edit().putBoolean("isWxLogin", false).commit();mSp.edit().putString("headimgurl", "").commit();mSp.edit().putString("openid", "").commit();Intent intent = new Intent(NewLoginActivity.this,IndexActivity.class);startActivity(intent);finish();//                        if (status != StatusCode.ST_CODE_SUCCESSED) {//                            Toast.makeText(LoginActivity.this, "退出失败", Toast.LENGTH_SHORT).show();//                        }//  Toast.makeText(LoginActivity.this, "退出当前账号", Toast.LENGTH_SHORT).show();}});}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android