纪录一下shareSdk第三方登录的主要代码
集成请参照Mob
注意事项:
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />放在自己包名下边,我是和微信支付放在一个包名下,否者回调不了微信
签名使用正式版签名 我默认的Debug使用的也是正式版签名
signingConfigs { release { keyAlias 'xxxx' keyPassword 'xxxx' storeFile file('C:/Users/admin/.android/aaaa.jks') storePassword 'xxx' } } buildTypes { release { // 不显示Log // buildConfigField "boolean", "LOG_DEBUG", "false" //混淆 minifyEnabled true //Zipalign优化 zipAlignEnabled true // 移除无用的resource文件 shrinkResources true //前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { signingConfig signingConfigs.release }
case R.id.tv_qq_login: name = QQ.NAME; trustAuthorize(name); break; case R.id.tv_wechat_login: name = Wechat.NAME; trustAuthorize(name); break; case R.id.tv_microblog_login: name = SinaWeibo.NAME;trustAuthorize(name);
/** * 第三方授权 * * @param name 平台名字 */ private void trustAuthorize(String name) { Platform pla = ShareSDK.getPlatform(LoginActivity.this, name); if (pla.isValid()) { pla.removeAccount(); }pla.setPlatformActionListener(this); pla.SSOSetting(false);//设置false表示使用SSO授权方式 pla.authorize(); }@Override public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) { String id = platform.getDb().getUserId(); // Log.e("login", id); // Log.e("login", platform.getDb().getPlatformNname()); // Log.e("login", platform.getDb().getToken()); // Log.e("login", platform.getDb().getUserIcon()); // Log.e("login", platform.getDb().getUserName()); // Log.e("login", platform.getDb().getTokenSecret()); // Log.e("login", platform.getDb().getUserGender()); // Log.e("login", platform.getDb().getPlatformVersion() + "");// 我的登录处理,这里写自己的登录逻辑 trustLoginCallback(id, provider_code, id, userName, gender); } @Override public void onError(Platform platform, int i, Throwable throwable) { ToastUtils.TextToast(LoginActivity.this, "哎呀!授权出现问题,请稍后再试", Toast.LENGTH_SHORT); } @Override public void onCancel(Platform platform, int i) { ToastUtils.TextToast(LoginActivity.this, "马上登录账户,获取更多奖励", Toast.LENGTH_SHORT); }