我也不怎么会整理知识点, 就是把自己用到的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.做登录返回数据接收
@Overrideprotected 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
新闻热点
疑难解答