1.首先去QQapi官网 下载jar包 并且导入 要导入两个jar 一个mta_sdk 一个open_sdk
2.设置AndroidManifest
<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"
/>
<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="222222" />
</intent-filter>
</activity>
3.java代码
public class QQLogin extends Activity {
//按钮
private Button btn = null;
//QQ登陆时主要用到的信息
private String QQopenId = null;//QQ的一个开放ID
private String QQnickname = null;//昵称
private String QQaccessToken = null;//一个验证码
private String QQexpires = null;//另外一个验证标志
//QQ用户信息
private UserInfo QQuserinfo = null;
//QQ登录的主要操作对象
private Tencent tencent = null;
//QQ登录的AppId
private final String APP_ID = "222222";
//实例化QQ反馈
private QQUIListener UIlistener = null;
//QQ权限
private String QQ_scope = "all";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.thirty_eight);
init_qq();
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login_qq();
}
});
}
//初始化
private void init_qq(){
tencent = Tencent.createInstance(APP_ID, this.getApplicationContext());
if (!tencent.isSessionValid()) {
UIlistener = new QQUIListener();
}
}
//登录事件
private void login_qq(){
if (!tencent.isSessionValid())
{
tencent.login(this, QQ_scope, UIlistener);
}
}
//这里记得一定要删除黄色字体override
class QQUIListener implements IUiListener {
//如果选择了授权会调用这个函数
//第一次返回的是一些验证码
//之后使用了QQuserinfo.getUserInfo(UIlistener)会再次调用这个函数 返回的是用户信息 可以输出o对象验证
public void onComplete(Object o) {
JSONObject jo = (JSONObject) o;
try {
if (QQopenId == null)
{
QQopenId = jo.getString("openid");
}
if (QQaccessToken == null)
{
QQaccessToken = jo.getString("access_token");
}
if (QQexpires == null)
{
QQexpires = jo.getString("expires_in");
//给Tencent设置参数 创建QQuserinfo对象
tencent.setOpenId(QQopenId);
tencent.setAccessToken(QQaccessToken, QQexpires);
QQuserinfo = new UserInfo(QQLogin.this, tencent.getQQToken());
QQuserinfo.getUserInfo(UIlistener);
return;
}
//这里是得到昵称,你也可以得到别的东西
QQnickname = jo.getString("nickname");
return;
} catch (JSONException e) {
}
}
public void onError(UiError uiError) {
}
//取消了登录
public void onCancel() {
}
}
//这里要记得
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Tencent.onActivityResultData(requestCode, resultCode, data, UIlistener);
super.onActivityResult(requestCode, resultCode, data);
}
}