在项目的build.gradle 里面的
dependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath 'com.mob.sdk:MobSDK:+' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }app里面 切记最低APi 为 16
/ 添加插件 apply plugin: 'com.mob.sdk' // 在MobSDK的扩展中注册SMSSDK的相关信息 MobSDK { appKey "2644a0499208c" appSecret "c3257ee488e6fbf1502dde11495c2c49" SMSSDK {} //第三方登录 ShareSDK { //平台配置信息 devInfo { Wechat {//微信 appId "wx4868b35061f87885" appSecret "64020361b8ec4c99936c0e3999a9f249" } QQ {//QQ appId "100371282" appKey "aed9b0303e3ed1e27bae87c33761161d" } } } }
新建app 继承 application 在oncreate()方法里面 初始化
public class Myapp extends Application { @Override public void onCreate() { super.onCreate(); MobSDK.init(this); } }
两个方法
/* * 第三方登录QQ * */ public void getQQ(){ Platform plat = ShareSDK.getPlatform(QQ.NAME); plat.removeAccount(true); //移除授权状态和本地缓存,下次授权会重新授权 plat.SSOSetting(false); //SSO授权,传false默认是客户端授权,没有客户端授权或者不支持客户端授权会跳web授权 plat.setPlatformActionListener(new PlatformActionListener() {//授权回调监听,监听oncomplete,onerror,oncancel三种状态 @Override public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) { Iterator iterator = hashMap.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry next = (Map.Entry) iterator.next(); Object key = next.getKey(); Object value = next.getValue(); Log.d("哈哈", "onComplete: "+key+" "+value); } } @Override public void onError(Platform platform, int i, Throwable throwable) { Log.d("哈哈", "onError: "+platform.getName()+" "+platform.getDb()+" "+" "+platform.getId()+" "+platform.getPlatformActionListener()+" "+platform.getVersion()); } @Override public void onCancel(Platform platform, int i) { Log.d("哈哈", "onCancel: "+platform.getName()); } }); if (plat.isClientValid()) { //todo 判断是否存在授权凭条的客户端,true是有客户端,false是无 } if (plat.isAuthValid()) { //todo 判断是否已经存在授权状态,可以根据自己的登录逻辑设置 Toast.makeText(this, "已经授权过了", Toast.LENGTH_SHORT).show(); return; } //plat.authorize(); //要功能,不要数据 plat.showUser(null); //要数据不要功能,主要体现在不会重复出现授权界面 } /* * 第三方微信登录 * */ public void getWeiXin(){ Platform plat = ShareSDK.getPlatform(Wechat.NAME); plat.removeAccount(true); //移除授权状态和本地缓存,下次授权会重新授权 plat.SSOSetting(false); //SSO授权,传false默认是客户端授权,没有客户端授权或者不支持客户端授权会跳web授权 plat.setPlatformActionListener(new PlatformActionListener() {//授权回调监听,监听oncomplete,onerror,oncancel三种状态 @Override public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) { Iterator iterator = hashMap.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry next = (Map.Entry) iterator.next(); Object key = next.getKey(); Object value = next.getValue(); Log.d("哈哈", "onComplete: "+key+" "+value); } } @Override public void onError(Platform platform, int i, Throwable throwable) { Log.d("哈哈", "onError: "+platform.getName()+" "+platform.getDb()+" "+" "+platform.getId()+" "+platform.getPlatformActionListener()+" "+platform.getVersion()); } @Override public void onCancel(Platform platform, int i) { Log.d("哈哈", "onCancel: "+platform.getName()); } }); if (plat.isClientValid()) { //todo 判断是否存在授权凭条的客户端,true是有客户端,false是无 } if (plat.isAuthValid()) { //todo 判断是否已经存在授权状态,可以根据自己的登录逻辑设置 Toast.makeText(this, "已经授权过了", Toast.LENGTH_SHORT).show(); return; } //plat.authorize(); //要功能,不要数据 plat.showUser(null); //要数据不要功能,主要体现在不会重复出现授权界面 }