android QQ 登录
2015-11-19 13:42
423 查看
<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="111111111" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
//下面有关QQ参数 private static final String QQ_APPID = "111111111"; private Tencent mTencent; private IUiListener loginListener; private IUiListener userInfoListener; private String scope; private com.tencent.connect.UserInfo userInfo;
</pre><pre name="code" class="html"> /** * QQ登录 */ private void QQLogin() { if (!mTencent.isSessionValid()) { mTencent.login(LoginActivity.this, scope, loginListener); } } private void getQQUserInfo() { if(mTencent.getQQToken() == null){ System.out.println("qqtoken == null"); } userInfo = new com.tencent.connect.UserInfo(LoginActivity.this, mTencent.getQQToken()); userInfo.getUserInfo(userInfoListener); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == com.tencent.connect.common.Constants.REQUEST_API) { if (resultCode == com.tencent.connect.common.Constants.RESULT_LOGIN) { Tencent.handleResultData(data, loginListener); } super.onActivityResult(requestCode, resultCode, data); } }
private void initQQData() { mTencent = Tencent.createInstance(QQ_APPID, LoginActivity.this); scope = "all"; loginListener = new IUiListener() { @Override public void onError(UiError arg0) { // TODO Auto-generated method stub } @Override public void onComplete(Object value) { // TODO Auto-generated method stub if (value == null) { return; } try { JSONObject jo = (JSONObject) value; int ret = jo.getInt("ret"); UpMiLog.d(TAG, "json=" + String.valueOf(jo)); if (ret == 0) { String openID = jo.getString("openid"); String accessToken = jo.getString("access_token"); String expires = jo.getString("expires_in"); mTencent.setOpenId(openID); mTencent.setAccessToken(accessToken, expires); getQQUserInfo(); } } catch (Exception e) { // TODO: handle exception } } @Override public void onCancel() { // TODO Auto-generated method stub } }; userInfoListener = new IUiListener() { @Override public void onError(UiError arg0) { // TODO Auto-generated method stub } @Override public void onComplete(Object arg0) { // TODO Auto-generated method stub if(arg0 == null){ return; } try { JSONObject jo = (JSONObject) arg0; int ret = jo.getInt("ret"); UpMiLog.d(TAG,"Get user info json=" + String.valueOf(jo)); if(ret == 0){ String nickName = jo.getString("nickname"); String gender = jo.getString("gender"); if (jo.has("figureurl")) { Bitmap bitmap = null; try { String imageUri = jo.getString("figureurl_qq_2"); UpMiLog.d(TAG,"QQ head icon=" + imageUri); } catch (JSONException e) { e.printStackTrace(); } }else { UpMiLog.d(TAG,"has not head icon"); } Toast.makeText(LoginActivity.this, "你好," + nickName, Toast.LENGTH_LONG).show(); }else{ } } catch (Exception e) { // TODO: handle exception } } @Override public void onCancel() { // TODO Auto-generated method stub } }; }
相关文章推荐
- [置顶] Android Crash 定位
- android opencv人脸检测程序
- Android setTextSize
- Android LinearLayout 自动换行
- Android基础入门教程——10.9 WallpaperManager(壁纸管理器)
- Android中如何将子View的坐标转换为父View的坐标
- Android之Broadcast, BroadcastReceiver(广播)
- Android开发过程中的几个小知识点
- AsyncTask解惑
- Android 速度检测demo
- android 布局
- 《第一行代码--Android》读书笔记之碎片
- Android NDK 环境搭建 之 起始篇NDK HelloWorld
- android 可上下滑动切换区域 左右滑动
- android aidl导出jar包
- 用adb将手机/data/data/com.android.providers.contacts/databases下的contacts2.db拷贝到电脑上
- Android——显示隐藏移动动画
- Android爆炸散落动画:ExplosionField开源
- Android编程实现TextView部分颜色变动的方法
- Android中ListView的使用(一)