Android集成ShareSDK的分享及第三方登录

废话不多说,直接上代码

package com.example.administrator.sharesdkdemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import java.util.HashMap;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import cn.sharesdk.sina.weibo.SinaWeibo;
import cn.sharesdk.tencent.qq.QQ;
import cn.sharesdk.wechat.friends.Wechat;

public class MainActivity extends AppCompatActivity implements PlatformActionListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ShareSDK.initSDK(this);
        findViewById(R.id.share).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
		//分享
                showShare();
            }
        });
        findViewById(R.id.login_WeiXIn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
		//微信第三方登录
                Logoin(Wechat.NAME);
            }
        });
        findViewById(R.id.login_QQ).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
		//QQ第三方登录
                Logoin(QQ.NAME);
            }
        });
        findViewById(R.id.login_Sina).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
		//微博第三方登录
                Logoin(SinaWeibo.NAME);
            }
        });


    }
    private void showShare() {
        ShareSDK.initSDK(this);
        OnekeyShare oks = new OnekeyShare();
//关闭sso授权
        oks.disableSSOWhenAuthorize();

// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
        oks.setTitle("标题");
// titleUrl是标题的网络链接,QQ和QQ空间等使用
        oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
        oks.setText("我是分享文本");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
//oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
        oks.setUrl("http://sharesdk.cn");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
        oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
        oks.setSite(getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
        oks.setSiteUrl("http://sharesdk.cn");

// 启动分享GUI
        oks.show(this);
    }
    private void Logoin(String plat) {

//        ShareSDK.initSDK(this);

        Platform wechat = ShareSDK.getPlatform(this, plat);
//
//        wechat.SSOSetting(true);
//
//        if(!wechat.isClientValid()) {
//
//            Toast.makeText(this,
//
//                    "微信未安装,请先安装微信",
//
//                    Toast.LENGTH_LONG).show();
//
//        }
//
//        authorize(wechat);


        wechat.setPlatformActionListener(this);
        wechat.authorize();//单独授权,OnComplete返回的hashmap是空的
        wechat.showUser(null);//授权并获取用户信息

    }
    private void authorize(Platform plat) {

//        if(plat ==null) {
//
//            return;
//
//        }
//
//        plat.setPlatformActionListener(this);
//
关闭SSO授权
//
//        plat.SSOSetting(false);
//
//        plat.showUser(null);

    }

//获取数据

    @Override
    public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
        Log.e("onComplete","登录成功");
        Log.e("user",platform.getDb().getUserName()); //拿到登录用户的昵称
        Log.e("user",platform.getDb().getUserIcon());//头像
        Log.e("user",platform.getDb().getUserGender());//性别
        Log.e("user",platform.getDb().getUserId());//id
    }

    @Override
    public void onError(Platform platform, int i, Throwable throwable) {

    }

    @Override
    public void onCancel(Platform platform, int i) {

    }
}


注:第三方登录需要去这三个平台分别申请账号,否则无法成功登录

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值