安卓Android第三方登录-QQ登录
要实现QQ第三方登录,其实只需要一个封装类:QQLoginManager
几乎 三行代码 就实现QQ登录功能
这里先给出Github开源项目地址,项目下有详细的使用说明
下面就开始详细说一说怎么实现基于这个强大开源项目的安卓第三方QQ登录吧!
准备工作:获取 AppID
点击应用接入

第一次需要按照说明 注册类型 ,如果是小白练手,推荐选择个人
通过步骤完成注册(可能需要实名认证,一般审核需要12个小时)
在管理中心创建应用
选择创建的类型
注意:到这里如果只是单纯的个人测试用,只需要填写一下应用名称、选一下应用类型,然后点击【保存】就可以了,并不需要真的发布到应用宝上,之后AppId就可以用了
再注意一下:一个AppID只能在一个应用上使用,如果另一个项目也需要使用QQ登录,需要在管理中心新建一个应用
到了这里就可以进行开发工作了,由于本篇博客主要内容为通过一个集成封装类实现安卓的QQ第三方登录,所以原生的QQ登录、从头到尾的写法就不赘述了
引入开源项目(GitHub开源项目:点这里 下载地址:点这里)
Step 1. 引入SDK JAR包
下载Jar包
你可以点击这里下载 腾讯官方QQ-SDK-JAR 包 (下载完成后只需要解压出里面 libs 文件夹里的 jar文件 即可)
也可以直接使用GitHub项目里 qq_sdk_jar文件夹 里的 jar包 (这个jar包为腾讯官方于为2018年5月更新的版本,你也可以点击这里查看 最新官方SDK包版本 )
在项目里引入Jar包
这里给出一种引入Jar包的方法(其他方法也可以)
以Android Studio为例:
将下载好的jar包放到你的安卓项目的
app\libs文件夹下
在 Android Studio 中点击
File->Project Structure,然后选择app->Dependencies,这时候点击右上角的+号,选择Jar dependency,然后选择上一步libs文件夹里的jar包添加即可
Step 2. 修改AndroidManifest文件
(1) 将下列代码复制到 AndroidManifest.xml 文件的 <application></application> 中 (注意将代码里的app_id完善):
<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" />
<!-- 这地方需要用你在开放平台申请的appid:tencent+appid -->
<data android:scheme="tencent00000000" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="behind"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
(2) 添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Step 3. 引入QQLoginManager.java文件
下载GitHub项目的 QQLoginManager.java 文件,将其复制到自己的安卓项目中
Step 4. 代码示例
按照下列示例代码,模仿其添加到自己的Activity类中,之后你就可以在需要的地方(如点击某个按钮后)调用函数:qqLoginManager.launchQQLogin(),即可唤起QQ登录
public class MainActivity extends AppCompatActivity implements QQLoginManager.QQLoginListener {
private QQLoginManager qqLoginManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 实例化QQLoginManager, 传入你的app_id
qqLoginManager = new QQLoginManager("app_id", this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
// 回调
qqLoginManager.onActivityResultData(requestCode, resultCode, data);
}
@Override
public void onQQLoginSuccess(JSONObject jsonObject) {
// 登录成功
}
@Override
public void onQQLoginCancel() {
// 登录取消
}
@Override
public void onQQLoginError(UiError uiError) {
// 登录出错
}
}
补充说明(函数onQQLoginSuccess:JSONObject里QQ用户信息字段格式)
{
"nickname":昵称,
"gender":性别,
"province":所在省份,
"city":所在城市,
"year":出生年,
"constellation":星座,
"figureurl":头像URL,
"figureurl_1":头像URL,
"figureurl_2":头像URL,
"figureurl_qq_1":头像URL,
"figureurl_qq_2":头像URL,
"vip":是否为qq会员,
"level":qq会员等级,
"is_yellow_vip":是否为黄钻,
"yellow_vip_level":黄钻等级,
"is_yellow_year_vip":是否为黄钻年会员
}
安卓Android第三方登录-QQ登录的更多相关文章
- 第三方账号登录--QQ登录,以及QQ微博账号登录
在QQ登陆测试的时候,刚申请正常登陆,但是由于app未上线,或许是腾讯升级造成的个别时候QQ登陆无法成功会提示下图代码,功能上没啥问题,已经达到 测试效果了.附上腾讯错误代码图(大家测试QQ登陆的时候 ...
- 第三方登录 QQ登录 人人网登录 新浪微博登录
http://www.pp6.cn/Index.aspx http://www.pp6.cn/Login.aspx 网站有自己的账号系统,这里使用的第三方登录仅仅是获取第三方账号的唯一id,昵称,性别 ...
- 第三方登录 ----QQ登录
学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 http://connect.qq.com登入我们自己的QQ号,没有QQ号的小伙伴可以忽略本篇博文分享!
- PHP第三方登录——QQ登录
主要内容 简单回顾OAuth协议基本原理 接入QQ登录的前置条件以及开放平台账号申请 引入官方SDK SDK参数配置 SDK核心方法解读 整合QQ登录SDK到Web应用中 SDK优化 调用API的开发 ...
- Android第三方授权(QQ篇)
QQ授权比微信授权相对来说会方便一些 同样需要去官网下载sdk和导入sdk到自己的工程 http://wiki.connect.qq.com/%E7%A7%BB%E5%8A%A8%E5%BA%94%E ...
- 第三方登录(QQ登录)开发流程详解
原文:http://www.cnblogs.com/it-cen/p/4338202.html 近排由于工作的繁忙,已经一个星期没写博文做分享了,接下来我对网站接入第三方登录----QQ登录的实现逻辑 ...
- (转)第三方登录(QQ登录)开发流程详解
近排由于工作的繁忙,已经一个星期没写博文做分享了,接下来我对网站接入第三方登录----QQ登录的实现逻辑做一个详细的讲解. 对于整个流程的详细文档可以到QQ互联官网(http://wiki.conne ...
- Django商城项目笔记No.11用户部分-QQ登录1获取QQ登录网址
Django商城项目笔记No.11用户部分-QQ登录 QQ登录,亦即我们所说的第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目. 若想实现QQ登录,需要成为QQ互联 ...
- qq登录,新浪微博登录 ,接口开发
给linux命令在线中文手册加了,qq登录和新浪微博登录,认证用的是auth2.0,并且用了js api和php api相结合的方式来做的.个人觉得这种方式,兼顾安全和人性化.以前写过一篇关于申请的博 ...
随机推荐
- 【黑金原创教程】【Modelsim】【第六章】结束就是开始
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- 【BZOJ4002】[JLOI2015]有意义的字符串 数学
[BZOJ4002][JLOI2015]有意义的字符串 Description B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行三个整数 ...
- 微信登陆,微信SDK授权登陆经验分享
From:http://www.eoeandroid.com/thread-547012-1-1.html 最近因为项目需要做了微信登陆,好像也是微信最近才放出来的接口.还需要申请才能有权限实现授权. ...
- DocumentFragment 不支持 innerHTML
在需要多次使用 innerHTML 的地方,一般是推荐用 DocumentFragment 来缓存,最后一次性插入 body,从而减少浏览器的渲染,提高性能,不过最近也发现一个 bug: Docume ...
- js 连等赋值 分析
JavaScript权威指南-第6版 4.11 赋值表达式 提到了连等赋值的情况,但是解释的不够详细,所以在此总结下: 首先看书上最重要的一句话: 这句话总结下就是: A = B ; // 整个表达式 ...
- maven profile多环境动态配置文件使用
pom.xml <profiles> <!-- =====开发环境====== --> <profile> <id>dev</id> < ...
- FAT AP 与 FIT AP的特点和区别
Fat AP的主要特点: Fat AP是与Fit AP相对来讲的, Fat AP将WLAN的物理层.用户数据加密.用户认证.QoS.网络管理.漫游技术以及其他应用层的功能集于一身. Fat AP无线网 ...
- Java 内省(Introspector)深入理解
Java 内省(Introspector)深入理解 一些概念: 内省(Introspector) 是Java 语言对 JavaBean 类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类 ...
- ubuntu 上已经安装libxml2还提示需要reinstall的解决方法
最近在ubuntu上配置环境,遇到一些奇怪的问题,已经安装了libxml2了,运行 apt-get install libxml2提示已经是最新版本了,可以在安装软件的时候还是提示没有libxml2, ...
- python基础-第五篇-5.3装饰器
小白发呆的看着窗外,同事们陆陆续续的地来到公司,想起算法,小白就飘飘然了.突然后面传来一声呼唤,原来是小刘! 小刘:不好意思啊!堵车了,就来晚了点,不耽误你的时间,咱们就开启的今天的培训内容吧! 小白 ...