QQ第三方登录

来源:互联网 发布:数据库新建表 编辑:程序博客网 时间:2024/05/18 21:44

//首先按照Umeng中配置

注意点:

1.复制Debug文件到App下

2.复制三个Values文件到App-values下

MyApp:

public class MyApp extends Application {
//QQ    {        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");    }    @Override    public void onCreate() {        super.onCreate();        initJpush();        initumeng();        initImg();    }
//返回QQ头像时调用    private void initImg() {        DisplayImageOptions options  = new DisplayImageOptions.Builder().build();       ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(options).build();        ImageLoader.getInstance().init(configuration);    }    private void initumeng() {        UMShareAPI.get(this);    }
//Fragment:
private void initView() {    mxiaoxi = view.findViewById(R.id.xiaoxi);    micon = view.findViewById(R.id.qq_icon);    mname = view.findViewById(R.id.qq_name);    mqq = view.findViewById(R.id.ll_qq);    mqq.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            UMShareAPI.get(getActivity()).getPlatformInfo(getActivity(), SHARE_MEDIA.QQ,umAuthListener);        }    });}UMAuthListener umAuthListener  = new UMAuthListener() {    @Override    public void onStart(SHARE_MEDIA share_media) {    }    @Override    public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {        System.out.println("uid========"+map.get("uid"));        System.out.println("name========"+map.get("name"));        System.out.println("iconurl========"+map.get("iconurl"));
//设置QQ头像        ImageLoader.getInstance().displayImage(map.get("iconurl"),micon);
//设置QQ名字        mname.setText(map.get("name"));    }    @Override    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {    }    @Override    public void onCancel(SHARE_MEDIA share_media, int i) {    }};@Overridepublic void onDestroy() {    super.onDestroy();}

//最后在登录所在的Activity里复写onActivityResult方法,注意不可在fragment中实现,// 如果在fragment中调用登录,在fragment依赖的Activity中实现,如果不实现onActivityResult方法,会导致登录或回调无法正常进行@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    UMShareAPI.get(this).onActivityResult(requestCode ,resultCode , data);}

原创粉丝点击