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

packagecom.example.administrator.sharesdkdemo;

importandroid.os.Bundle;

importandroid.support.v7.app.AppCompatActivity;

importandroid.util.Log;

importandroid.view.View;

importjava.util.HashMap;

importcn.sharesdk.framework.Platform;

importcn.sharesdk.framework.PlatformActionListener;

importcn.sharesdk.framework.ShareSDK;

importcn.sharesdk.onekeyshare.OnekeyShare;

importcn.sharesdk.sina.weibo.SinaWeibo;

importcn.sharesdk.tencent.qq.QQ;

importcn.sharesdk.wechat.friends.Wechat;

public classMainActivityextendsAppCompatActivityimplementsPlatformActionListener {

@Override

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ShareSDK.initSDK(this);

findViewById(R.id.share).setOnClickListener(newView.OnClickListener() {

@Override

public voidonClick(View view) {

showShare();

}

});

findViewById(R.id.login_WeiXIn).setOnClickListener(newView.OnClickListener() {

@Override

public voidonClick(View view) {

Logoin(Wechat.NAME);

}

});

findViewById(R.id.login_QQ).setOnClickListener(newView.OnClickListener() {

@Override

public voidonClick(View view) {

Logoin(QQ.NAME);

}

});

findViewById(R.id.login_Sina).setOnClickListener(newView.OnClickListener() {

@Override

public voidonClick(View view) {

Logoin(SinaWeibo.NAME);

}

});

}

private voidshowShare() {

ShareSDK.initSDK(this);

OnekeyShare oks =newOnekeyShare();

//关闭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 voidLogoin(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 voidauthorize(Platform plat) {

//        if(plat ==null) {

//

//            return;

//

//        }

//

//        plat.setPlatformActionListener(this);

//

////关闭SSO授权

//

//        plat.SSOSetting(false);

//

//        plat.showUser(null);

}

@Override

public voidonComplete(Platform platform,inti, HashMap 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 voidonError(Platform platform,inti, Throwable throwable) {

}

@Override

public voidonCancel(Platform platform,inti) {

}

}

你可能感兴趣的:(Android 集成ShareSDK的分享及三方登录功能)