满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述安卓Android第三方登录-QQ登录相关的知识,希望能为你提供帮助。
要实现QQ第三方登录,其实只需要一个封装类:QQLoginManager
【安卓Android第三方登录-QQ登录】几乎 三行代码 就实现QQ登录功能
这里先给出Github开源项目地址,项目下有详细的使用说明
下面就开始详细说一说怎么实现基于这个强大开源项目的安卓第三方QQ登录吧!
准备工作:获取 AppID
打开 http://open.qq.com/
点击应用接入
文章图片
第一次需要按照说明 注册类型 ,如果是小白练手,推荐选择个人
通过步骤完成注册(可能需要实名认证,一般审核需要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包放到你的安卓项目的applibs
文件夹下
在 Android Studio 中点击Step 2. 修改AndroidManifest文件(1) 将下列代码复制到File-> Project Structure
,然后选择app-> Dependencies
,这时候点击右上角的+
号,选择Jar dependency
,然后选择上一步libs
文件夹里的jar包
添加即可
AndroidManifest.xml
文件的 <
application>
<
/application>
中 (注意将代码里的app_id完善):
&
lt;
activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true"&
gt;
&
lt;
intent-filter&
gt;
&
lt;
action android:name="android.intent.action.VIEW" /&
gt;
&
lt;
category android:name="android.intent.category.DEFAULT" /&
gt;
&
lt;
category android:name="android.intent.category.BROWSABLE" /&
gt;
&
lt;
!-- 这地方需要用你在开放平台申请的appid:tencent+appid --&
gt;
&
lt;
data android:scheme="tencent00000000" /&
gt;
&
lt;
/intent-filter&
gt;
&
lt;
/activity&
gt;
&
lt;
activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="behind"
android:theme="@android:style/Theme.Translucent.NoTitleBar" /&
gt;
(2) 添加网络权限
&
lt;
uses-permission android:name="android.permission.INTERNET" /&
gt;
&
lt;
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
gt;
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":是否为黄钻年会员
}
推荐阅读
- 关于支付宝app支付服务端的实现-Java版
- 初学Android 创建 启动 停止Service 五十八
- ..EEPEEP.c(249): error:#268: declaration may not appear after executable statement in block
- Android studio设置可以用鼠标改变字体大小
- 一起学Android之ListView
- Electron 发生错误 "Cannot find module app"的解决方案
- JavaWeb_(session和application)用户登录注册模板_进阶版
- Android Studio 删除多余的虚拟设备(Virtual Device)
- Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块