现在的第三方登录很普遍如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. PL/SQL -- INSTEAD OF 触发器
  2. ABAP data extract 数据抽取总结
  3. 域名转入Godaddy详解
  4. [MySQL光速入门]012 作业解答
  5. Kogito,ergo规则:从知识到服务,轻松自如
  6. [詹兴致矩阵论习题参考解答]习题1.13
  7. 【Elasticsearch】用ElasticSearch实现基于标签的兴趣推荐
  8. 记录MS SQL Server数据库
  9. Flink 端到端一致性
  10. 【elasticsearch】elasticsearch的问题之ERROR: bootstrap checks failed
  11. iOS 自定义UISlider
  12. 可以作为html5页面开发工具的有,HTML5开发工具有哪些
  13. Jmeter之Constant Timer与constant throughput timer的区别
  14. 【BZOJ4503】两个串(FFT)
  15. 企业架构-发布在线文档【企业架构框架-TOGAF v0.2.pdf】
  16. oracle 中execute immediate 是什么意思?
  17. 常用的硬件封装库下载网站
  18. python爬取豆瓣电影top250网络响应_python使用requests+re爬取豆瓣电影top250简单入门爬虫...
  19. HMC5883L 转换方向角与简易校准方法
  20. java实现微信公众号群发文本消息

热门文章

  1. c 语言中strcat的用法,strcat 在 C 语言中是什么意思?
  2. Arcgis地图切片专题(关于tpk的制作以及迁移切片包至服务器的相关流程)
  3. 苹果MFI bluetooth认证开发过程:iDevice和accessory
  4. JAVA基础——对象与引用概念(转载)
  5. [Python模块]根据姓名笔画数排序
  6. 桌面计算机打开无响应,在win7系统中桌面无响应的几种解决方法
  7. 防火墙之Iptables与Firewalld
  8. Adobe ColdFusion
  9. WEB 1.HTML
  10. [转][darkbaby]任天堂传——失落的泰坦王朝(中)