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();}});}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories