QQ登录(Eclipse)

我也不怎么会整理知识点, 就是把自己用到的QQ登录步骤以及源码拷过来,供以后学习查看,希望大家指点互相学习。

说起QQ登录,大家在熟悉不过,今天我把具体的实现步骤和注释写出:

一,导入QQ登录需要的jar包

下载地址:

http://download.csdn.net/detail/baidu_28842815/9751446

二,写入AndroidManifest.xml

 

<!-- TODO GAME SDK QQ接入配置 START -->
        <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="tencent1105782337" />
                <!-- TODO GAME 这里为游戏QQ登录的配置,游戏需要修改为自己手Q的appid -->
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <!-- TODO GAME SDK QQ接入配置 END -->

注意data中tencent必须有,后跟自己已应用包名在“腾讯开放平台”上申请的appid

 

以下是平台地址:http://open.qq.com/ 上方找到应用接入

<data android:scheme="tencent1105782337" />

 

三,在Java代码编写具体实现步骤

1.导入import

 

private Tencent mTencent;
private IUiListener loginListener;


2.创建对象

mTencent = Tencent.createInstance(appid, this);

 

3.添加授权登录监听器

 

loginListener = new IUiListener() {

			@Override
			public void onError(UiError error) {
				Log.i(TAG, "登录失败" + error);
				LoginActivity.this.finish();
			}

			@Override
			public void onComplete(Object value) {
				if (value == null) {
					return;
				}

				try {
					JSONObject json = (JSONObject) value;
					int ret = json.getInt("ret");
					Log.i(TAG, "QQ登录返回json:" + json.toString());

					if (ret == 0) {
						final String accessToken = json.getString("access_token");
						final String openid = json.getString("openid");
						final String expires_in = json.getString("expires_in");

						/**如果后台需要openid来做登录处理,在此处编写网络请求*/

						mTencent.setOpenId(openid);
						mTencent.setAccessToken(accessToken, expires_in);

						QQToken qqToken = mTencent.getQQToken();
						UserInfo info = new UserInfo(activity, qqToken);

						/** 获取用户部分信息监听器*/
						info.getUserInfo(new IUiListener() {

							@Override
							public void onError(UiError error) {

							}

							@Override
							public void onComplete(Object value) {
								JSONObject json = (JSONObject) value;
								Log.i(TAG, "QQ登录返回用户信息:" + json.toString());
							}

							@Override
							public void onCancel() {

							}
						});

					}

				} catch (JSONException e) {
					e.printStackTrace();
				}

			}

			@Override
			public void onCancel() {
				Log.i(TAG, "登录取消");
				LoginActivity.this.finish();
			}
		};


4.点击QQ登录按钮

 

 

// 如果session无效,就开始登录
if (!mTencent.isSessionValid()) {
	// 要所有权限,"all",不然会再次申请增量权限
	mTencent.login(activity, "all", loginListener);
}

 

5.做登录返回数据接收

 

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	Tencent.onActivityResultData(requestCode, resultCode, data, loginListener);
}

这一步必不可少!

 

 

 

好了,QQ登录实现到此为止,希望对大家有用!

QQAPI:

http://wiki.open.qq.com/wiki/mobile/API%E8%B0%83%E7%94%A8%E8%AF%B4%E6%98%8E#1.1_.E7.99.BB.E5.BD.95.2F.E6.A0.A1.E9.AA.8C.E7.99.BB.E5.BD.95.E6.80.81

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值