android 微信登录

来源:互联网 发布:java时间戳计算 编辑:程序博客网 时间:2024/04/27 22:01

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";

@Overrideprotected 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.getString("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() {                    @Override                    public void onStart() {                    }                    @Override                    public 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();                    }                });    }





0 0