现在的第三方登录很普遍如QQ,微博,微信,今天我们就来实现如何接入QQ登录到我们的项目中

要想使用QQ登录我们需要到腾讯开放平台注册账号获取开发者资格地址:http://open.qq.com/ 注册完成后点击我们右上角的管理中心

进入管理中心后点下面的创建应用

然后选择Android平台就会获取APPID和APPKEY创建完成后我们需要到 http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD 下载SDKJar包 接下来就可以实现QQ登录了新建一个项目工程名为QQLoginDemo 然后把我们刚才下载的SDK解压将jar文件夹中的jar包拷贝到我们的项目libs中

这是项目的结构

打开我们的Androidmanifest 在里面加入权限和注册Activity 如下

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.shiran.qqlogindemo"><!-- QQ登录授权所需权限 --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!-- 注册SDKActivity --><activityandroid: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="tencent1105602574" /> <!-- 开放平台获取的APPID --></intent-filter></activity><activity android:name="com.tencent.connect.common.AssistActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:screenOrientation="portrait"/></application></manifest>

布局文件activity_main 就一个Button按钮

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.shiran.qqlogindemo.MainActivity"><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击QQ登录"android:onClick="buttonLogin"android:layout_centerInParent="true"android:textSize="16sp"android:textColor="#f4736e"/>
</RelativeLayout>

下面就是我们的MainActivity中的代码了

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;import com.tencent.connect.UserInfo;
import com.tencent.connect.auth.QQToken;
import com.tencent.connect.common.Constants;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;import org.json.JSONException;
import org.json.JSONObject;public class MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity";private static final String APP_ID = "1105602574";//官方获取的APPIDprivate Tencent mTencent;private BaseUiListener mIUiListener;private UserInfo mUserInfo;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//传入参数APPID和全局Context上下文mTencent = Tencent.createInstance(APP_ID,MainActivity.this.getApplicationContext());}public void buttonLogin(View v){/**通过这句代码,SDK实现了QQ的登录,这个方法有三个参数,第一个参数是context上下文,第二个参数SCOPO 是一个String类型的字符串,表示一些权限官方文档中的说明:应用需要获得哪些API的权限,由“,”分隔。例如:SCOPE = “get_user_info,add_t”;所有权限用“all”第三个参数,是一个事件监听器,IUiListener接口的实例,这里用的是该接口的实现类 */mIUiListener = new BaseUiListener();//all表示获取所有权限mTencent.login(MainActivity.this,"all", mIUiListener);}/*** 自定义监听器实现IUiListener接口后,需要实现的3个方法* onComplete完成 onError错误 onCancel取消*/private class BaseUiListener implements IUiListener{@Overridepublic void onComplete(Object response) {Toast.makeText(MainActivity.this, "授权成功", Toast.LENGTH_SHORT).show();Log.e(TAG, "response:" + response);JSONObject obj = (JSONObject) response;try {String openID = obj.getString("openid");String accessToken = obj.getString("access_token");String expires = obj.getString("expires_in");mTencent.setOpenId(openID);mTencent.setAccessToken(accessToken,expires);QQToken qqToken = mTencent.getQQToken();mUserInfo = new UserInfo(getApplicationContext(),qqToken);mUserInfo.getUserInfo(new IUiListener() {@Overridepublic void onComplete(Object response) {Log.e(TAG,"登录成功"+response.toString());}@Overridepublic void onError(UiError uiError) {Log.e(TAG,"登录失败"+uiError.toString());}@Overridepublic void onCancel() {Log.e(TAG,"登录取消");}});} catch (JSONException e) {e.printStackTrace();}}@Overridepublic void onError(UiError uiError) {Toast.makeText(MainActivity.this, "授权失败", Toast.LENGTH_SHORT).show();}@Overridepublic void onCancel() {Toast.makeText(MainActivity.this, "授权取消", Toast.LENGTH_SHORT).show();}}/*** 在调用Login的Activity或者Fragment中重写onActivityResult方法* @param requestCode* @param resultCode* @param data*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if(requestCode == Constants.REQUEST_LOGIN){Tencent.onActivityResultData(requestCode,resultCode,data,mIUiListener);}super.onActivityResult(requestCode, resultCode, data);}
}

下面是效果图

android实现第三方QQ登录相关推荐

  1. Android接入第三方QQ登录

    Android接入第三方QQ登录 前言 开始接入 1. 添加依赖 2.AndroidManifest.xml配置 3.初始化SDK 4.创建实例 5.实现回调 6. 调用QQ登录接口 7.获取用户信息 ...

  2. 解决Android接入第三方QQ登录闪退

    解决Android接入第三方QQ登录闪退 1.问题 按照官方文档接入QQ登录后,模拟器上运行正常,在真机小米8(Android Q)上面的时候闪退: 报错如下: Java.lang.NoClassDe ...

  3. android qq第三方登录,Android调用第三方QQ登录代码分享

    本文为大家分享了调用QQ登录的相关代码,希望对大家有帮助,减少项目开发的时间,具体内容如下 1.去QQ开放平台注册帐号(http://open.qq.com/),为应用申请QQ的APP_ID , 并下 ...

  4. android登录操作代码,Android Studio实现第三方QQ登录操作代码

    来看看效果图吧 实现QQ登录了, 新建一个项目工程 ,然后把我们刚才下载的SDK解压将jar文件夹中的jar包拷贝到我们的项目libs中 导入一个下面架包就可以 项目结构如下 打开我们的清单文件And ...

  5. Android第三方QQ登录、获取个人信息、分享实现

    昨天调试了一下午终于成功 第三方QQ登录.获取个人信息,分享 QQ官方API文档写的太乱 并且很多地方没有更新 这里总结一下 方便记录和回看 实现结果图 首先进入腾讯开放平台 下载QQ的SDK 地址 ...

  6. android第三方QQ登录授权

    项目中经常用到第三方登录,今天分享下如何用QQ登录 前面的准备工作就不说了,首先下载QQ登录的jar包,这个是腾讯开放平台可以去下载http://wiki.open.qq.com/wiki/mobil ...

  7. 关于Android如何集成QQ登录及分享

    首先去友盟进行下载压缩包 然后使用友盟集成工具 将umeng_integratetool_result里的东西拷贝到工程中 新建一个app继承Application,去清单文件里面注册 在oncrea ...

  8. android 实现仿QQ登录可编辑下拉菜单

    今天,简单讲讲android里如何实现向QQ一样的登录后记住用户名的下拉框. 这个其实也很简单,网上搜索了一下,很多相关的资料,基本都是PopupWindow+ListView的方式,实现起来比较灵活 ...

  9. ​Android实现仿QQ登录可编辑下拉菜单

    Android实现仿QQ登录可编辑下拉菜单 在Android里,直接提供的Spinner控件虽然可以实现下拉菜单的效果,但其效果并不理想,很多时候我们需要类似手机QQ那样既可以在文本框中直接输入编辑文 ...

  10. SpringBoot实现第三方QQ登录

    SpringBoot实现第三方qq登录Demo 1,首先进入qq互联中应用管理去审核信息得到appID和appKEY 审核填写信息后: 等通过找到id 和key参数. 2,贴代码解释: (1)pom文 ...

最新文章

  1. 【Python进阶】你真的明白NumPy中的ndarray吗?
  2. Keras MNIST
  3. Mybatis(4)入门案例中设计模式分析
  4. Windows7部署WordPress傻瓜式教程-cnblogs
  5. linux ssh和scp实例
  6. 数据实验室:让您的数据获得真正的价值
  7. 详细讲解怎样做数据仓库需求分析
  8. python+webdriver(二)
  9. Julia: 通过简单实践理解机器学习概念(flux.jl)
  10. 解决 uniapp 打包次数限制
  11. 单片机音频谱曲软件_单片机谱曲软件讲解
  12. 可用性及测试方法小介绍
  13. 火星探险 (Mars)
  14. 内存映射文件使用详细
  15. c++程序记时模板 测试程序运行时间
  16. 【路由篇】03. 远程设置并访问内网中二层路由的小米路由器
  17. Android 监听来电广播
  18. 成长的模式:如何从毕业生到技术专家?
  19. PC游戏中用CEF3制作内嵌浏览器
  20. 字符指针数组(二级指针)

热门文章

  1. CSS3:3D环绕实现
  2. Docker - debian 7 安装
  3. 小武与YOLOv3----优图代码
  4. 工程制图与计算机绘图实训任务书及参考资料,工程制图与计算机绘图综合实训(12版).doc...
  5. ps切图后 JAVA开发_两种ps切图方法(图层/切片)
  6. ie浏览器表单提交被清空问题
  7. 毕业设计 - 题目:基于FP-Growth的新闻挖掘算法系统的设计与实现
  8. 创立10年,已成为自助建站翘楚的 Squarespace .这五大成功经验.
  9. 个人作业4 结对开发地铁
  10. odi12配置mysql_Oracle数据库之Oracle ODI 12c之多表联合查询以及定时任务设置