友盟第三方QQ登录

使用步骤
想要使用友盟第三方QQ等首先得下载官网提供的SDK。
官网:https://www.umeng.com/
另外的一些配置文件(QQ完整版)
然后就可以根据官网提供的文档进行配置(和下载Sdk的地址):
http://dev.umeng.com/social/android/quick-integration
根据文档所提供的方法进行配置完成后我们就可以具体的设置了。
也可以在这里直接下载用到的工具包
http://download.csdn.net/my
本文的实现效果:点击登录按钮授权QQ登录并获取到QQ名字和头像

在MainActivity中

package test.bawei.com.disanfangdenglu;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.umeng.socialize.PlatformConfig;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;

import java.util.Map;

public class MainActivity extends AppCompatActivity {
    private UMShareAPI umShareAPI;
    private ImageView img;
    private TextView text;
//使用优盟加载这个需要注册官网会给你的key和密码(本人的测试用)

{
    PlatformConfig.setQQZone("1106197903","Vfdwhxp8yhlKPv4h");

}
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        umShareAPI=UMShareAPI.get(this);
        Button button= (Button) findViewById(R.id.butt);
        img= (ImageView) findViewById(R.id.img_header);
        text= (TextView) findViewById(R.id.nick);

//给button设置监听点击按钮执行登录
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            //SHARE_MEDIA.QQ表示我们要使用QQ进行登录
           umShareAPI.doOauthVerify(MainActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
                @Override
                public void onStart(SHARE_MEDIA share_media) {

                }

                @Override
                public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
//                   当登录成功时(这里的i当为0时表示登录成功当为2时我们就可以回调我们想要的信息)
                    Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                    umShareAPI.getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
                        @Override
                        public void onStart(SHARE_MEDIA share_media) {

                        }

                        @Override
                        public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                            Log.e("TAGGGGGGGGGGGGGGGG", "onComplete: "+map.toString() );
                            //所以返回的信息都保存在map集合中我们可以根据key值来得到我们想要的信息
                            String name = map.get("name");
                            text.setText(name);
                            String iconurl = map.get("iconurl");
                            Glide.with(MainActivity.this).load(iconurl).into(img);
                        }

                        @Override
                        public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {

                        }

                        @Override
                        public void onCancel(SHARE_MEDIA share_media, int i) {

                        }
                    });
                }

                @Override
                public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {

                }

                @Override
                public void onCancel(SHARE_MEDIA share_media, int i) {

                }
            });


            }

        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
       umShareAPI.onActivityResult(requestCode,resultCode,data);

    }


}

这个是回调接口信息的方法必须得实现

onActivityResult()

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

在使用之前一定要先初始化只有初始化完成后才可以执行下面的步骤

 umShareAPI=UMShareAPI.get(this);

其实到这里基本上就完成了只是在配置的时候比较麻烦但是官网给的文档也比较详细我们只需要根据文档进行配置。
注意:当你回调信息的时候一定要把从官网上面下载下来的res文件也放到创建的目录下面不然可以登录成功当获取不到用户信息
效果图
这里写图片描述
这样一般的需求就可以实现了
另外如果你是定义一个类来继承application的话一定要记得在清单文件里面配置一下
当然不止是友盟了,另外给大家一种比较好用的方法
http://blog.csdn.net/sandyran/article/details/53319846

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值