1.在 AndroidManifest.xml 中配置
<!-- Sdk QQ快捷登录配置 -->
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<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="tencent222222/><!-- 100380359 100381104 222222 -->
</intent-filter>
</activity>
2.配置访问权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
3.创建实力
String SCOPE = "get_user_info,get_simple_userinfo,get_user_profile";
private void onClickLogin() {
if (mTencent == null) {
mTencent = Tencent.createInstance("1102008431", this);
}
if (!mTencent.isSessionValid()) {
Thread loginThread = new Thread(new LoginRunable());
loginThread.start();
} else {
mTencent.logout(this);
}
}
private class LoginRunable implements Runnable {
@Override
public void run() {
mTencent.login(AppLoadActivity.this, SCOPE, loginListener);
}
}
IUiListener loginListener = new BaseUiListener() {
@Override
protected void doComplete(JSONObject jsonObject) {
try {
System.out.println("------eeeeeeeeeeeeeeeeee----");
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);
}//得到openId后处理您的业务,比如对你服务器用户进行查询核对,获取qq会员的头像昵称等信息
//Thread checkOpenIdThread = new Thread(new CheckOpenIdRunnable());
//checkOpenIdThread.start();
} catch(Exception e) {
e.printStackTrace();
}
}
};4.. 实现回调 private class BaseUiListener implements IUiListener {
@Override
public void onComplete(Object response) {
doComplete((JSONObject)response);
}
protected void doComplete(JSONObject values) {
}
@Override
public void onError(UiError e) {
}
@Override
public void onCancel() {
}
}
//如果要成功接收到回调,需要在调用接口的Activity的onActivityResult方法中增加如下代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("--------" + resultCode);
if(mTencent == null){
mTencent = Tencent.createInstance("222222", this);
}
if(requestCode == Constants.REQUEST_API) {//低端机需要配置
if(resultCode == Constants.RESULT_LOGIN) {
mTencent.handleLoginData(data, loginListener);
}
mTencent.onActivityResult(requestCode, resultCode, data);
}
}
本文详细介绍了如何在Android应用中集成SDK实现QQ快捷登录,并解释了回调处理过程,包括权限配置、实例创建、登录操作及回调响应。
2957

被折叠的 条评论
为什么被折叠?



