首先我们需要去腾讯开放平台申请账号,然后创建应用,地址(http://open.qq/)
下载我们应用中所需要的jar包,包括两个
open_sdk_r5509.jar
mta_sdk-1.6.2.jar
1.加载完成将jar包放入我们的工程libs目录下
使用eclipse直接设置build path
使用Android studio 需要选中右键 --->add is library
2.做完这步之后我们在AndroidManifest.xml文件中去配置引用
<activity
android:name=".activity.AuthActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"/>`这里写代码片`
<activity
android:name=".activity.officeAuthActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"/>
<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="你申请的APPID" />
</intent-filter>
</activity>
<activity android:name="com.tencent.connectmon.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"
/>
3.下面就是我们在activity中添加代码
1)初始化Tencent这个类
if (null==mTencent){
mTencent = Tencent.createInstance("你的APPID",this);
}
2)添加登录点击事件
if (!mTencent.isSessionValid()) {
mTencent.login(this, "all", qqListener);
}
3)处理QQ登录监听回调
在onActivityResult()中去
if (requestCode == Constants.REQUEST_LOGIN ||
requestCode == Constants.REQUEST_APPBAR) {
Tencent.onActivityResultData(requestCode, resultCode, data, qqListener);
}
qqListener接口回调:
private IUiListener qqListener = new BaseUiListener(){
@Override
protected void doComplete(JSONObject values) {
//super.doComplete(values);
initLoginID(values);
}
};
实现接口:
private class BaseUiListener implements IUiListener {
protected void doComplete(JSONObject values) {
}
@Override
public void onComplete(Object response) {
if (null == response) {
Util.showAlert(LoginActivity.this, "返回为空", "登录失败");
return;
}
JSONObject jsonResponse = (JSONObject) response;
if (null != jsonResponse && jsonResponse.length() == 0) {
Util.showAlert(LoginActivity.this, "返回为空", "登录失败");
return;
}
doComplete((JSONObject)response);
}
@Override
public void onError(UiError e) {
}
@Override
public void onCancel() {
}
}
**到这里登录过程已经完成**
下面就是如何获取QQ用户信息
/**
* 获取qq信息
* @param jsonObject
*/
private void initLoginID(JSONObject jsonObject) {
try {
if (jsonObject.getInt("ret")==0) {
String token = jsonObject.getString(Constants.PARAM_ACCESS_TOKEN);
String expires = jsonObject.getString(Constants.PARAM_EXPIRES_IN);
String openID = jsonObject.getString(Constants.PARAM_OPEN_ID);
//**下面这两步设置很重要,如果没有设置,返回为空**
mTencent.setOpenId(openID);
mTencent.setAccessToken(token, expires);
getuserInfo();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private void getuserInfo() {
qqInfo = new UserInfo(LoginActivity.this,mTencent.getQQToken());
qqInfo.getUserInfo(getQQinfoListener);
}
/**
* 获取用户信息
*/
private IUiListener getQQinfoListener = new IUiListener() {
@Override
public void onComplete(Object response) {
try {
JSONObject jsonObject = (JSONObject) response;
Logger.i("qq用户信息",jsonObject.toString());
//处理自己需要的信息
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(UiError uiError) {
}
@Override
public void onCancel() {
}
};
到这里就全部结束,希望能给到大家帮助!!!!!!
更多推荐
Android第三方QQ登录并获取QQ用户信息
发布评论