Android Studio开发实现第三方登录

关于Android Studio第三方登录(使用QQ登录)代码 关于Android Studio第三方登录(使用QQ登录)新手上路,写的不好或者有错误之处请各位大神多多指教!!! 现在很多APP应用都实现了第三方登录:比如QQ登录、微信登录、微博登录等等。其实实现起来非常简单,那么废话就不多说了,接下来我们看看如何实现第三方登录。1.首先我们需要到腾讯开发平台区申请一个开发者的账号,申请好了后登录。点击创建应用一步步往下就会获取到:APP ID:11053458 阅读详情

现在常见的第三方登录方式有微信,微博,QQ,支付宝。这里以用QQ登录为例叙述实现第三方登录的操作

首先我们需要到腾讯开放平台注册账号获取开发者资格地址:http://open.qq.com/ 然后申请资格,然后得到APPID和APPKEY,最后下载SDKjar包,将包内的jar包放到我们项目的libs项中,结果如下:


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

<?xml version="1.0" encoding="utf-8"?>
<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" />


    <application
        android: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 -->
        <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:

<?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"
    tools:context="com.shiran.qqlogindemo.MainActivity">

  <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中的代码

package com.shiran.qqlogindemo;

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";//官方获取的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);
    }
}

转载出处:https://blog.youkuaiyun.com/inter_native/article/details/78610051

四种第三方登录(附源码) 实现QQ、微信、新浪微博和百度第三方登录(Android Studio)前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于第三方登录的实现,并拿出来与大家一同分享;各大开放平台注册账户获取AppKey和AppSecret Mob开放平台地址:http://www.mob.com/#/index 阅读详情

相关推荐

Android Studio|使用SqLite实现一个简单的登录注册功能

Android Studio 是开发 Android 应用程序的官方 IDE,基于 Intellij IDEA。你可以从官网Android Studio下载下载最新版本的 Android Studio。在项目开始之前,请确认已经安装好Android Studio和完成相关的环境配置。SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。他有诸多的优点。

m0_61924739的博客 1万+

Android Studio初学者实例:SharedPreferences 登录/注册模块实现

接下来是主界面的逻辑代码,需要处理几件事:设置好友初始化数据、设置ListView适配器以及显示数据、初始化Menu、点击Menu能够跳转到选择排序的设置界面。menu的代码:(在res下创建menu文件夹在文件夹中创建menu.xml)RadioButton构成,在逻辑代码中则是在SP中设置选择的排序并返回主界面。登陆成功后跳转到主界面,主界面由一个ListView和右上角抽屉Menu构成。首先是登陆界面以及逻辑代码,在逻辑代码中实现记住密码(勾选选择框后)示例:好友名排序效果。以下是主界面的界面代码。

林大大的博客 2311

Android Studio 实现登录功能

在移动应用开发中,登录功能是一个常见的需求。Android Studio 是一款流行的集成开发环境 (IDE),可以用于开发 Android 应用程序。本文将介绍如何使用 Android Studio 实现一个简单的登录功能,并提供相应的源代码。注意:在实际的应用程序中,为了安全起见,建议使用加密算法对用户密码进行加密存储,并采取其他安全措施,如使用 HTTPS 进行数据传输。以上就是使用 Android Studio 实现登录功能的简单步骤。你可以根据自己的需求,进一步完善登录界面的设计和登录逻辑。

OwxLinux的博客 1119

【Android Studio学习】第一篇、制作一个拥有登录和注册功能的简易APP

【Android Studio学习】第一篇、制作一个拥有登录和注册功能的简易APP

大屁桃的博客 3万+

android studio QQ第三方登录demo

android studio QQ第三方登录demo 测试可以运行登录,有返回值,和退出 修改自http://download.youkuaiyun.com/detail/u013422268/8554579#comment 莫明8882015-04-01上传 的源码

安卓QQ相关相关-androidstudioQQ第三方登录demo测试可以运行登录有返回值和退出.zip

android studio QQ第三方登录demo 测试可以运行登录,有返回值,和退出.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

AndroidStudio案例——登录页面的切换

简单的登录页面【效果展示】【xml代码】【Java代码】

m0_52177571的博客 2051

Android-使用Android Studio实现第三方QQ登录

现在的第三方登录很普遍如QQ,微博,微信,今天我们就来实现如何接入QQ登录到我们的项目中 要想使用QQ登录我们需要到腾讯开放平台注册账号 需要这两个jar包

实现QQ、微信、新浪微博和百度第三方登录(Android Studio)

实现QQ、微信、新浪微博和百度第三方登录(Android Studio) 前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于第三方登录的实现,并拿出来与大家一同分享; 各大开放平台注册账户获取AppKey和AppSecret Mob开放平台地址:http://www.mob.com/#/index QQ开放

hecheng0509的博客 2414

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

主要介绍了Android Studio实现第三方QQ登录的操作方法,本文图文并茂给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下

前端埋点的实践

1、前言 开始正文前先介绍一下埋点的概念~,(熟悉的朋友可以略过) 前端埋点: 是一种手段,它的目的是上报相关行为数据,相关人员以数据为依据来分析产品在用户端的使用情况,根据分析出来的结果辅助产品优化、迭代。 BI:商业智能,公司内部做数据分析相关的部门。 2、背景 在流量红利逐渐消失的现在,数据的采集、分析和精细化的运营显得更加重要,所以埋点的需求在互联网产品中是很常见的,目的上面也提到了。我们的追求就是又快又好的做好埋点工作,但是现实却不那么美好;目前我们团队在前端埋点方面存在一些痛点: 在构造埋点字段

Arui_0的博客 1772

第三方登录android代码,Android Learning:微信第三方登录(示例代码)

这两天,解决了微信第三方授权登录的问题,作为一个新手,想想也是一把辛酸泪。我想着,就把我的遇到的坑给大家分享一下,避免新手遇到我这样的问题能够顺利避开。步骤一 微信开发者平台我开始的解决思路是,去这个API文档的主要意思呢,有三点:1、你得下载这几样东西(2、如果你自己的APP想要微信第三方授权,你得去申请一个APPID,这个APPID呢,就是微信给咱们APP分配的一个代号。当然微信不是免费给你服...

weixin_35041472的博客 431

Win11安装Office2021

windows11安装office2021。

1万+

Android Studio实现简单登录跳转源码

Android Studio实现简单登录跳转源码 【下载地址】AndroidStudio实现简单登录跳转源码 这是一个基于Android Studio开发的简单登录跳转功能源码示例,非常适合初学者学习和参考。项目通过清晰的代码结构,展示了如何从主界面(MainActivity)跳转到另一个活动界面(OtherActivi...

gitblog_06759的博客 534

大智慧L2实时api接口的逐笔委托功能执行代码分享

用过l2行情接口的投资者应该都了解大部分的接口都是有逐笔委托功能的,那么大智慧L2实时api接口也有着很强大的逐笔委托功能,投资者可以通过这个逐笔委托功能可以看到一个股票的每天出现的全部委托指令,那么在这个逐笔委托功能里包含了委托价格、委托时间、委托量和委托方向四个要素!那么接下来小编就分享一下大智慧L2实时api接口的逐笔委托功能执行代码!那么在这里提个醒:投资者可以在大智慧L2实时api接口进行设置过滤,在逐笔委托列表里,就仅仅只会显示超过设置委托量或委托额的委托单,而不再显示小单。

Qq_2037696191的博客 3731

Ubuntu 22.04源码编译安装ROS Noetic

Ubuntu 22.04源码编译安装ROS Noetic

Drknown的博客 2万+

android注册的模板下载地址,Android --LoginActivity模板登录

Android Studio使用自带LoginActivity模板,制作登录界面登录界面功能:1、记住表单账户密码,并自动登录//获得sp实例对象sp = this.getSharedPreferences("userInfo", Context.MODE_WORLD_READABLE);//如果登陆过,直接登录if(sp.getBoolean("ISLOAD",false)) {Intent i...

weixin_31098573的博客 242

手把手教你逆向抖店滑块验证码:从抓包到生成captchaBody的完整流程(附Python复现代码)

本文详细解析了抖店滑块验证码的逆向过程,从抓包分析到参数生成,最终用Python完整复现验证流程。涵盖关键接口分析、指纹参数生成、轨迹加密逻辑及核心加密算法实现,帮助开发者突破抖店的多重安全机制,实现高效的人机验证绕过。

weixin_30681121的博客 424

登录和注册页面资源分享:Android Studio中的高效开发工具

登录和注册页面资源分享:Android Studio中的高效开发工具 去发现同类优质开源项目:https://gitcode.com/ 在移动应用开发中,登录和注册页面是必不可少的组成部分。今天,我要为大家介绍一个实用的开源项目——登录和注册页面资源分享,该项目通过简洁的设计和高效的代码,帮助开发者节省时间,提升开发效率。 项目介绍 登录和注册页面资源分享是一个基于Android Studio创建...

gitblog_06794的博客 605

病理组学分析系列教程1:使用Python-histolab进行病理图像预处理,tiles切片自动生成

病理图像tiles自动生成,WSI图像预处理

qq_43449643的博客 1741

NXP S32k3 MCAL ADC配置

S32K3 配置MCAL ADC

Leon_0125的博客 5071

AndroidStudio版登录界面加直连Sqlserver资源文件

AndroidStudio版登录界面加直连Sqlserver资源文件 去发现同类优质开源项目:https://gitcode.com/ 此资源文件包含了一个使用Android Studio开发的简单登录界面,并且实现了与SQL Server数据库的直接连接功能。本资源旨在帮助开发者快速理解和应用Android与SQL Server数据库的交互机制,支持开发者在此基础上进行进一步的开发和优化。 功能...

gitblog_06724的博客 686

微信小程序 - 详细实现随机生成订单号,微信小程序创建订单号思路,不重复订单号生成的方法,小程序自动生成固定规则的订单号流水号(必须是唯一不重复的订单号,生成唯一订单号)详细生成方法,示例代码教程最新

微信小程序,vue2,vue3,订单号,流水号思路,微信小程序 详细实现随机生成订单号(JavaScript),随机生成商户订单号,根据当前时间随机生成流水号或者订单号,微信小程序之商家订单,订单号随机生成器,自动生成固定规则的订单号(前缀+采购日期+6位流水号)微信小程序 生成外卖顺序号,生成订单号或流水号简单方法,实现订单号生成唯一的解决方案,如何按日期生成订单号,14位编号=8位日期(+6位流水号),自动生成订单号(固定+日期+数字),销售订单号自动生成。在微信小程序开发中,详解实现随机生成创建订单号

🏆 前端领域优质创作者 1186

Android实例开发中登录注册界面的框架实现(android studio)

小项目框架 今天用QQ的时候想到了,不如用android studio 做一个类似于这样的登录软件。当然QQ的实现的功能特别复杂,UI界面也很多,不是单纯的一时新奇就可以做出来的。就是简单的实现了一些功能,做了三个界面;1.登录界面。2.注册界面。3.登陆后的界面。 功能描述 登录按钮------按钮实现跳转到下一个界面,并且判断输入的账号、密码是否符合规则(不为空),提示,登陆成功或失败 注册按...

不会游泳的程序猿 10万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: Android studio实现层级式导航
下一篇: Windows环境下在Codeblocks搭配WinPcap
GGHS_up
博客等级 码龄10年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值