1,jar包

2,配置AndroidManifest.xml

 1 <activity android:name=".login.LoginActivity"
 2           android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation">
 3     <intent-filter>
 4         <action android:name="android.intent.action.MAIN"/>
 5         <category android:name="android.intent.category.LAUNCHER"/>
 6     </intent-filter>
 7 </activity>
 8 <activity
 9     android:name="com.tencent.tauth.AuthActivity"
10     android:launchMode="singleTask"
11     android:noHistory="true" >
12     <intent-filter>
13         <action android:name="android.intent.action.VIEW" />
14         <category android:name="android.intent.category.DEFAULT" />
15         <category android:name="android.intent.category.BROWSABLE" />
16         <data android:scheme="tencent222222" />
17         <!-- 将222222换成自己的appid -->
18     </intent-filter>
19 </activity>
20
21 <activity
22     android:name="com.tencent.connect.common.AssistActivity"
23     android:configChanges="orientation|keyboardHidden"
24     android:screenOrientation="behind"
25     android:theme="@android:style/Theme.Translucent.NoTitleBar" />

3,LoginActivity调用

 1 //222222换成自己的appid
 2 Tencent mTencent = Tencent.createInstance("222222", this.getApplicationContext());
 3 //all获取全部
 4 mTencent.login(this, "all", new IUiListener() {
 5     @Override
 6     public void onComplete(Object o) {
 7         Log.i("返回",o.toString());
 8     }
 9     @Override
10     public void onError(UiError uiError) {
11     }
12     @Override
13     public void onCancel() {
14     }
15 });
16 //注销
17 //mTencent.logout(this);

4,回调

 1 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 2     if (requestCode == Constants.REQUEST_LOGIN){
 3         if(resultCode == Constants.ACTIVITY_OK){
 4             Log.i("onActivityResult",data.getStringExtra("key_action"));
 5             //如果少了这句,监听器的没效果。onComplete不会执行
 6             Tencent.handleResultData(data,loginListener);
 7         }
 8     }
 9     super.onActivityResult(requestCode, resultCode, data);
10 }

5,以上是授权获取openid。下边就是获取授权用户的基本信息了。授权成功后将onComplete(Object o)返回的数据设置到mTencent里

 1 try {
 2     String token = object.getString(Constants.PARAM_ACCESS_TOKEN);
 3     String expires = object.getString(Constants.PARAM_EXPIRES_IN);
 4     String openId = object.getString(Constants.PARAM_OPEN_ID);
 5     //设置token
 6     mTencent.setAccessToken(token, expires);
 7     //设置openid
 8     mTencent.setOpenId(openId);
 9 } catch (JSONException e) {
10     e.printStackTrace();
11 }

6,拿到当前授权QQ号的昵称,头像之类的基本信息

1 UserInfo userInfo = new UserInfo(this,mTencent.getQQToken());
2  //和上边授权的一样
3  userInfo.getUserInfo(new IUiListener(){...});

转载于:https://www.cnblogs.com/Jieth/p/5160373.html

android 第三方登录 --- QQ相关推荐

  1. Android 第三方登录 QQ提示需要最新版问题的解决办法

    问题: android 12 的手机上QQ是最新的.在使用app调用QQ的第三方登录时提示需要更新版本. 解决: targetSdkVersion版本30及以上的需要在AndroidManifest中 ...

  2. Android第三方登录——QQ

    一.首先需要在官网上面注册开发者账号:https://connect.qq.com/index.html 二.创建应用,这里有一个需要注意的东西,创建应用是需要一个应用名称,应该是应用名称被别人用过了 ...

  3. Android第三方登录详解2

    接着Android第三方登录详解1讲 1.找到友盟  文档中心 2.找到 3.将 UMSocialService mController = UMServiceFactory.getUMSocialS ...

  4. Springboot网站第三方登录——QQ登录

    Springboot网站第三方登录--QQ登录 这段时间为了做这几个第三方登录,走了很多弯路,跳了很多坑,为以后使用特地记录下来. 由于做了多个登录,所以代码做了一定程度的封装,大致如下: //多个登 ...

  5. Facebook android 第三方登录

    Facebook android 第三方登录 android平台使用Facebook账号登录自己的app - 前期准备 - 注册Facebook开发者账号,添加自己的应用,按照官方文档的指引完成需要的 ...

  6. CAS单点登录-第三方登录[QQ、微信、CSDN、GitHub](十四)

    CAS单点登录-第三方登录[QQ.微信.CSDN.GitHub](十四) 注: 目前博文使用cas版本为5.1.5,由于5.2.x与5.1.x构建模式有差异,所以部分配置会有些偏差. 本章内容 简答介 ...

  7. 第三方登录QQ申请步骤

    第三方登录QQ: 提供需要的APP ID 和 APP KEY 1.1 进入QQ开发者平台: https://open.qq.com/reg 1.2 个人注册需要信息:身份证,手持身份证照片.手机号码. ...

  8. 苹果cms第三方登录QQ互联正确回调设置方法

    QQ互联进行注册认证:https://connect.qq.com 登陆qq后点击头像申请开发者完善资料后提交审核. 域名填写你的网站域名 回调地址正确填写:http://域名/index.php/u ...

  9. 试用友盟SDK实现Android第三方登录(以QQ登录为例)

    虽然自己在日常工作中用不到第三方登录,但是它的重要性无可厚非. 废话不多说,接下来跟着步骤走,轻松集成第三方登陆. 一,在友盟注册应用 注册好友盟账户后,在http://www.umeng.com/s ...

最新文章

  1. TCP通过滑动窗口和拥塞窗口实现限流,能抵御ddos攻击吗
  2. 扶贫干部拍胸脯认证,AI开发者上手零门槛,百度打造 “云智一体”全栈开发杀手锏...
  3. js 原生跨页面通信_DOM操作是跨线程的你知道吗?
  4. 基因组重复序列检测:RepeatMasker
  5. 设计模式总结篇系列:适配器模式(Adapter)
  6. 实践心得:从读论文到复现到为开源贡献代码
  7. Failed to install DroidIPCam.apk on device 'emulator-5554': timeout
  8. Decorator Pattern - C# 3.0 Design Patterns
  9. POJ1390 Blocks——动态规划——pku1390
  10. 前端学习(3084):vue+element今日头条管理-表单数据绑定2
  11. bigdicmal除法精度设置_java中BigDecimal进行加减乘除的基本用法
  12. NGUI_2.6.3_系列教程三
  13. Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
  14. CentOS下安装svn,添加新用户,重启svn服务
  15. 【C/C++笔记】之显式调用DLL、隐式调用DLL、查看DLL输出函数
  16. 2021年PMP考试模拟题2(含答案)
  17. 网上打印店可以急速打印东西吗?
  18. Tableau基础图表制作
  19. 中国房价不可能下降的19个理由
  20. 相机上的这个自定义功能太好用了

热门文章

  1. 机器学习入门到进阶学习路线图
  2. opencv打开摄像头采集和保存
  3. JSP Cookie处理
  4. java中的IO详解(上)
  5. 自定义控件:下拉刷新
  6. linux 打造man中文帮助手册图解(man-pages-zh帮助页)
  7. 创建springboot出现error:connection timed out创建springboot报错显示连接超时解决方案
  8. mysql 分组占比_含泪整理MySQL索引
  9. 苹果手机微信声音小怎么调大声_成都市苹果手机维修服务网点查询
  10. bind函数怎么用JAVA_c++bind函数的用法