使用步骤
想要使用友盟第三方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