我也不怎么會整理知識點, 就是把自己用到的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
新聞熱點
疑難解答