1. 并把open-sdk.jar文件和mta_sdk_x.x.x.jar文件拷贝到libs(或lib)目录下;
open_sdk 下载地址:http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD,
2. 配置AndroidManifest文件
3.创建实例:
4.实现回调接口
private class BaseUiListener implements IUiListener {
@Override
public void onComplete(Object response) {
if (null == response) {
Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
return;
}
JSONObject jsonResponse = (JSONObject) response; //返回的response是个json对象
if (null != jsonResponse && jsonResponse.length() == 0) {
Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
return;
}
Log.v("ashin", "QQ登录成功返回结果-" + response.toString());
doComplete((JSONObject) response);
}
protected void doComplete(JSONObject response) {
}
@Override
public void onError(UiError e) {
Util.toastMessage(MainActivity.this, "onError: " + e.errorDetail);
Util.dismissDialog();
}
@Override
public void onCancel() {
Util.toastMessage(MainActivity.this, "onCancel: ");
Util.dismissDialog();
if (isServerSideLogin) {
isServerSideLogin = false;
}
}
}
5.调用QQ登录接口
private void qqLogin() {
/** 判断是否登陆过 */
if (!mTencent.isSessionValid()) {
mTencent.login(this, "all", loginListener);
} else {
mTencent.logout(this); ///登陆过注销之后在登录
mTencent.login(this, "all", loginListener);
}
}
6.登陆成功后获取数据
登录成功后调用public void onComplete(JSONObject arg0) 回传的JsonObject, 其中包含OpenId, AccessToken等重要数据。
IUiListener loginListener = new BaseUiListener() {
@Override
protected void doComplete(JSONObject values) {
initOpenidAndToken(values);
updateUserInfo();
}
};
/**
* 存储token和openid
*/
public static void initOpenidAndToken(JSONObject jsonObject) {
try {
String token = jsonObject.getString(Constants.PARAM_ACCESS_TOKEN);
String expires = jsonObject.getString(Constants.PARAM_EXPIRES_IN);
String openId = jsonObject.getString(Constants.PARAM_OPEN_ID);
if (!TextUtils.isEmpty(token) && !TextUtils.isEmpty(expires) && !TextUtils.isEmpty(openId)) {
mTencent.setAccessToken(token, expires);
mTencent.setOpenId(openId);
}
} catch (Exception e) {
}
}
参考文章 : http://blog.csdn.net/u013451048/article/details/52352810