使用友盟完成第三方QQ登录,并回传头像等数据

 

这是自己总结的,可以实现,我做的只是QQ登录

不多说,直接进入主题


先看运行效果

点击button,跳转到登录界面

使用友盟完成第三方QQ登录,并回传头像等数据_第1张图片



 授权并登录

使用友盟完成第三方QQ登录,并回传头像等数据_第2张图片


登录并返回信息

使用友盟完成第三方QQ登录,并回传头像等数据_第3张图片



我总结的东西步骤太多,但是步骤一个不少,步骤很清晰

1:配置需要的东西


1.1 找到友盟官网,并注册,登录


1.2 登录以后进入友盟主页,点击产品---->U-Share

使用友盟完成第三方QQ登录,并回传头像等数据_第4张图片


1.3 点击U-Share进入页面后,点击SDK及文档下的Android机器人图标


使用友盟完成第三方QQ登录,并回传头像等数据_第5张图片


1.4 进入以后下载所需要的SDK


使用友盟完成第三方QQ登录,并回传头像等数据_第6张图片


1.5 下载SDK 根据自己的需求勾选


使用友盟完成第三方QQ登录,并回传头像等数据_第7张图片


1.6 下载,解压并打开后,双击友盟集成工具,打开以后勾选自己需要的(我做的是QQ完整版,使用的是Android studio)

使用友盟完成第三方QQ登录,并回传头像等数据_第8张图片

 

1.7 点击OK以后会生成一个文件夹


使用友盟完成第三方QQ登录,并回传头像等数据_第9张图片


1.8 点开文件夹以后 ,把libs下的jar包导入到工程里的libs中


使用友盟完成第三方QQ登录,并回传头像等数据_第10张图片


1.9 把jar包导入到 library中


使用友盟完成第三方QQ登录,并回传头像等数据_第11张图片



2.0 把res文件夹下的文件拷入到工程相应的文件夹下


使用友盟完成第三方QQ登录,并回传头像等数据_第12张图片


2.1 把生成的debug.keystore 导入到工程中,要和build同级

使用友盟完成第三方QQ登录,并回传头像等数据_第13张图片



2.2配置Android Mainfest.xml权限


 
    
    
    
    
    
    
    
    


2.3 sdk中需要的activity




            
                
                
                
                
            

    

    

      
           

2.4 增加签名中的文件


buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.debug
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            signingConfig signingConfigs.debug
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

2.5  Application中


public class App extends Application {

    {   //配置QQappkey
        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
    }
    private UMShareAPI umShareAPI;

    private static  App app;

  public  static App getApp(){
        return app;
    }
    @Override
    public void onCreate() {
        super.onCreate();
        app=this;
        x.Ext.init(this);
        x.Ext.setDebug(BuildConfig.DEBUG);
        //初始化sdk
       umShareAPI=UMShareAPI.get(this);
    }

    public UMShareAPI getUmShareAPI() {
        return umShareAPI;
    }
}


2.6 MainActivity中


public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private ImageView image;
    private TextView name,city,gender,province;
    private Button login;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         //点击按钮跳转到登录页面
       login = (Button) findViewById(R.id.login);
        //需要显示的各个控件
       image = (ImageView) findViewById(R.id.iconurl);
        name = (TextView) findViewById(R.id.name);
        city = (TextView) findViewById(R.id.city);
        gender = (TextView) findViewById(R.id.gender);
        province = (TextView) findViewById(R.id.province);

       login.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        App.getApp().getUmShareAPI().doOauthVerify(this,
                SHARE_MEDIA.QQ, new UMAuthListener() {
                    @Override
                    public void onStart(SHARE_MEDIA share_media) {
                        Toast.makeText(MainActivity.this,"onStart",Toast.LENGTH_SHORT).show();

                    }

                    @Override
                    public void onComplete(SHARE_MEDIA share_media, int i, Map map) {
                        if(i==0){//判断i = 0,只是登录成功,但是获取不到数据
                            Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
                                //获取信息
                               App.getApp().getUmShareAPI().getPlatformInfo(MainActivity.this,
                                    SHARE_MEDIA.QQ,
                                    this);
                        }
                        if(i==2){//当i=2/时,获取信息
                            login.setVisibility(View.GONE);
                            String imageurl = map.get("iconurl");//头像
                            String nameString = map.get("name");//昵称
                            String genderString = map.get("gender");//男女
                            String cityString = map.get("city");//城市
                            String provinceString = map.get("province");//省份
                            x.image().bind(image,imageurl);
                            name.setText(nameString);
                            gender.setText(genderString);
                            city.setText(cityString);
                            province.setText(provinceString);
                        }


                    }

                    @Override
                    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
                        Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onCancel(SHARE_MEDIA share_media, int i) {
                        Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
                    }
                });

    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        App.getApp().getUmShareAPI().onActivityResult(requestCode,resultCode,data);



2.7 布局文件中



    

拓展

使用友盟完成第三方QQ登录,并回传头像等数据_第14张图片


使用友盟完成第三方QQ登录,并回传头像等数据_第15张图片

你可能感兴趣的:(使用友盟完成第三方QQ登录,并回传头像等数据)