Android Studio实现第三方QQ登录操作代码

来看看效果图吧

   

http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD 下载SDKJar包 接下来就可以

实现QQ登录了,

新建一个项目工程 ,然后把我们刚才下载的SDK解压将jar文件夹中的jar包拷贝到我们的项目libs中

导入一个下面架包就可以

项目结构如下

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tangxiaoying.qq2">
 <!-- QQ登录授权所需权限 -->
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <application
  android:allowBackup="true"
  android:icon="@mipmap/ic_launcher"
  android:label="@string/app_name"
  android:roundIcon="@mipmap/ic_launcher_round"
  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 -->
  <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" />
    <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按钮

<?xml version="1.0" encoding="utf-8"?>
<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"
  >
 <Button
  android: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.os.Bundle;
import android.support.v7.app.AppCompatActivity;
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";//官方获取的APPID
 private Tencent mTencent;
 private BaseUiListener mIUiListener;
 private UserInfo mUserInfo;
 @Override
 protected 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 {
  @Override
  public 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() {
     @Override
     public void onComplete(Object response) {
      Log.e(TAG,"登录成功"+response.toString());
     }
     @Override
     public void onError(UiError uiError) {
      Log.e(TAG,"登录失败"+uiError.toString());
     }
     @Override
     public void onCancel() {
      Log.e(TAG,"登录取消");
     }
    });
   } catch (JSONException e) {
    e.printStackTrace();
   }
  }
  @Override
  public void onError(UiError uiError) {
   Toast.makeText(MainActivity.this, "授权失败", Toast.LENGTH_SHORT).show();
  }
  @Override
  public void onCancel() {
   Toast.makeText(MainActivity.this, "授权取消", Toast.LENGTH_SHORT).show();
  }
 }
 /**
  * 在调用Login的Activity或者Fragment中重写onActivityResult方法
  * @param requestCode
  * @param resultCode
  * @param data
  */
 @Override
 protected 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 Studio实现第三方QQ登录操作代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

您可能感兴趣的文章:

  • Android第三方登录之QQ登录
  • Android实现QQ登录功能
  • Android第三方登录之腾讯QQ登录的实例代码
  • Android QQ登录界面绘制代码
  • Android实现QQ登录界面遇到问题及解决方法
  • Android调用第三方QQ登录代码分享
  • Android仿QQ在状态栏显示登录状态效果
(0)

相关推荐

  • Android仿QQ在状态栏显示登录状态效果

    运行本实例,将显示一个用户登录界面,输入用户名(hpuacm)和密码(1111)后,单击"登录"按钮,将弹出如下图所示的选择登录状态的列表对话框, 单击代表登录状态的列表项,该对话框消失,并在屏幕的左上角显示代表登录状态的通知(如图) 过一段时间后该通知消失,同时在状态栏上显示代表该登录状态的图标(如图) 将状态栏下拉可以看到状态的详细信息(如图) 单击"更改登录状态"按钮,将显示通知列表.单击"退出"按钮,可以删除该通知. 具体实现方法: 此处

  • Android第三方登录之腾讯QQ登录的实例代码

    布局文件 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录成功" android:textSize="25sp" android:layout_marginTop="100dp" /> 清单文件中的配置 <activity android:n

  • Android调用第三方QQ登录代码分享

    本文为大家分享了调用QQ登录的相关代码,希望对大家有帮助,减少项目开发的时间,具体内容如下 1.去QQ开放平台注册帐号(http://open.qq.com/),为应用申请QQ的APP_ID , 并下载相关的jar包,放到工程的lib目录下. 2.在Manifest.xml里注册QQ相关的Activity,代码如下 <activity android:name="com.tencent.connect.common.AssistActivity" android:screenOr

  • Android实现QQ登录功能

    QQ登录是一个非常简单的一个第三方应用,现在,我们就来实现一个QQ登录 首先下载两个jar包   这里上传不了jar包,所以可以到我的github中下载工程中libs中的两个jar包 网址:https://github.com/chengzexiang/qqlogin 打代码前,先把这些东西写上: private static final String TAG = "MainActivity"; private static final String APP_ID = "11

  • Android QQ登录界面绘制代码

    先看看效果图: 首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得到焦点并且有输入内容时) ---  这些问题都有一一解决 --- 以下是代码: 布局 fragment_main(问题2) <!-- android:focusable="true" android:focusableInTouchMode="true&qu

  • Android实现QQ登录界面遇到问题及解决方法

    先给大家炫下效果图: 首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得到焦点并且有输入内容时) ......... --- 这些问题都有一一解决 --- 以下是代码: 布局 fragment_main(问题2) <!-- android:focusable="true" android:focusableInTouchMode=&

  • Android第三方登录之QQ登录

    本文实例为大家分享了Android第三方登录之QQ的具体代码,供大家参考,具体内容如下 第三方登录之QQ 代码区 public class MainActivity extends AppCompatActivity { private Button btn; private TextView tv; private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCr

  • Android Studio实现第三方QQ登录操作代码

    来看看效果图吧     http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD 下载SDKJar包 接下来就可以 实现QQ登录了, 新建一个项目工程 ,然后把我们刚才下载的SDK解压将jar文件夹中的jar包拷贝到我们的项目libs中 导入一个下面架包就可以 项目结构如下 打开我们的清单文件Androidmanifest 在里面加入权限和注册Activity 如下 <?xml version="1.0" encoding

  • 浅谈Android Studio导出javadoc文档操作及问题的解决

    1.在Android studio中进行打开一个项目的文件之后,然后进行点击Android stuio中菜单中的"tools"的选项.在弹出了下拉菜单中,进行选中下拉菜单中的"Generate JavaDoc"的选项. 2.在弹出界面中 Output directory是你即将生产的javadoc文件的存储位置,图中1指示的位置:正常点击ok即可: 但是如果有异常情况 比如空指针异常或者文档乱码 java.lang.NullPointerException 或者 j

  • Android Studio连接MySql实现登录注册(附源代码)

    本文主要介绍了Android Studio连接MySql实现登录注册,分享给大家,具体如下: 一.创建工程 1.创建一个空白工程 2.随便起一个名称 3.设置网络连接权限 <uses-permission android:name="android.permission.INTERNET"/> 二.引入Mysql驱动包 1.切换到普通Java工程 2.在libs当中引入MySQL的jar包 将mysql的驱动包复制到libs当中 三.编写数据库和dao以及JDBC相关代码

  • Android Studio kotlin生成编辑类注释代码

    更新了AS 3.1.2之后,发现新建Kotlin类,类注释依然木有,没办法只有自己动手了. 方法很简单,编辑File Header就可以啦. 只需要编辑自己想要的模板就可以啦. /** * @Author ${USER} * @Date ${DATE}-${TIME} * @Email chrisSpringSmell@gmail.com */ 支持的动态命令不多,只有一些简单的命令. 新建类效果: 补充知识:Android Studio javadoc 生成注释文档 相信大家刚开始写代码的时候

  • 修改Android Studio 的 Logcat 缓冲区大小操作

    找到 Android Studio的安装目录\bin\idea.properties 文件 将文件中的idea.cycle.buffer.size=1024 改成 例如: idea.cycle.buffer.size=102400 另一个设置方式是: 补充知识:logcat 设置缓存区 设置buff logcat 的buff 有2种分配方式,一种是在kernel的,一种是logd, MM用的是在logd的这种的 system/core/liblog/Android.mk ifneq ($(TAR

  • Android studio 自动换行和取消自动换行操作

    Settings -> Editor -> General -> Use soft wraps in editor  选中换行反之不换行 (测试版本android studio 3.1.0版本,其他版本大家自适应) 补充知识:解决 android studio 一直闪 File > Invalidate Caches/Restart 重新启动 以上这篇Android studio 自动换行和取消自动换行操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们

  • Android Studio+Servlet+MySql实现登录注册

    一.Android 项目当中设置明文传输 1.设置明文传输的xml <?xml version="1.0" encoding="UTF-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"/> </network-security-config> 2.引入上述创建的xml android:networ

  • springboot网站应用使用第三方qq登录的实现过程

    使用第三方qq登录需要在QQ互联官网https://connect.qq.com/中申请成功才可以使用. 1.登录成功后进入个人设置中心设置个人信息 2.选择公司或个人接入,这里我选择个人接入 3.注册审核通过以后,点击应用管理,右侧会显示审核已通过,然后就可以申请网站应用的第三方登录了 4.填写网站信息 5.然后就可以获得APP ID和 APP Key,有了这两个就可以使用qq登陆了 6.然后下边是如何使用登录接口进行授权登录 这个java使用qq接口登录的源码链接: 链接: https://

  • java实现 微博登录、微信登录、qq登录实现代码

    微信,微博,QQ,这是现在目前用的最多的手机 APP,我们做产品哪能不跟他们不沾边,对于登录,我想谁也不想要多少个帐号密码,根本记不住! 为了增加用户体验,用户能够快速的注册登录,第三方账号进行登录注册的的需求也就由此而诞生 1.微信 1) 微信登录也是最坑人的,需要花300大洋成为开发者账户,没办法谁让微信用户群体大呢所以也就只好认了:然后登录网站后台需要创建网站应用,填写授权回调域(登录网站的域名)只填写域名即可 申请地址: https://open.weixin.qq.com/cgi-bi

随机推荐