1. 简述
腾讯的SDK说明文档很详细了,我仅仅是使用其中的登录部分,所以单独把登录相关的内容拿出来,在这里记录一下。
2. 文档资料(腾讯开放平台)
当前版本是1.6,这个版本支持QQ客户端和QQ空间客户端的SSO登录。
3. Manifest
permission
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
activity
<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="
tencent你的AppId" />
</intent-filter>
</activity>
"
tencent你的AppId",这里要注意,在1.4的SDK中是没有tencent的,在1.6中要在appid的前面加上"tencent",不加不会报错,但是进行授权的时候,会有问题,提示当前手机的操作系统不支持QQ的授权。。
4. 调用方法
创建实例
Tencent mTencent = Tencent.createInstance(APP_ID, appContext);
回调函数
IUiListener listener = new IUiListener() {
@Override
public void onCancel() {
// TODO:登录取消的一些处理
}
@Override
public void onComplete(JSONObject object) {
try {
mOpenId = object.getString("openid");
mAccessToken = object.getString("access_token");
mExpiresIn = object.getString("expires_in");
// TODO:登录成功的一些处理
} catch (JSONException e) {
e.printStackTrace();
// TODO:登录失败的一些处理
}
}
@Override
public void onError(UiError error) {
Log.d("ssoLogin", String.format("error code = %s, error detail = %s, error message = %s",
error.errorCode, error.errorDetail, error.errorMessage));
// TODO:登录失败的一些处理
}
};
SSO登录
mTencent.login(activity, SCOPE, listener);
在调用该接口的Activity的onActivityResult中,加入代码,其中
request code是5657
mTencent.onActivityResult(requestCode, resultCode, data);