废话不多说,直接上代码
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) {
}
}