关闭

Android基于友盟的第三方登陆

6125人阅读 评论(0) 收藏 举报
分类:

1:申请,申请,申请
Android任何第三方的东西都要在其官网注册id,创建应用并获取key。这里也就同样了。不过申请都是比较简单的,每个官网都有自己的申请方式以及文档说明,这里就不啰嗦了。
主要是讲讲这里的第三方登陆需要注意的点:(这里只介绍qq的第三方登陆,其它的基本类似)
在qq互联官网注册http://op.open.qq.com/的应用名称和在友盟http://www.umeng.com/上注册的应用名称要相同

2:配置和使用
什么都有了,那么现在进行配置与使用。官方demo上有具体例子,但还是那种综合性较大的,看起来的话就有点吃力,不过我还是啃了好一会,对照官方文档http://dev.umeng.com/social/android/android-update?spm=0.0.0.0.8Wq2p1也算是基本搞定。
其实真的不复杂:
1:导入资源文件,清单文件配置
2:初始化

资源文件导入:
jar包的导入:
这里写图片描述
下载官方的资源http://dev.umeng.com/social/android/sdk-download,找到适合自己的版本,选择最新的就可以了。可以勾选下载自己想要的其它组件。
下载解压后,找到上图中的四个jar包,因为是只是介绍qq的第三方,所以就只导入了qq的jar包和友盟的基础包,导入添加依赖。
同时将解压目录下main文件夹下的res文件夹拷贝至项目,可以直接复制到项目中的res(不会覆盖,即只是添加没有的东西至项目,原本的东西不会删除)

然后,配置清单文件:
这里直接拿上我参考官方配置好的xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="包名,系统自己会写好" >
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        //这里要写好自己的App,官方解释是加载第三方的登录,如加载qq登录,后面会有我的App代码
        android:name=".App"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
//必须要,友盟的activity
        <activity
            android:name="com.umeng.socialize.editorpage.ShareActivity"
            android:theme="@style/Theme.UMDefault"
            android:excludeFromRecents="true"/>
            //友盟中申请的appkey
        <meta-data
            android:name="UMENG_APPKEY"
            android:value="友盟中申请的appkey" >
        </meta-data>
//qq官方申请的key的配置
        <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" />
                //注意,这里的tencent不能省略
                <data android:scheme="tencent“你的key”" />
            </intent-filter>
        </activity>
       //要
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    </application>

</manifest>

清单文件就配置好了,
新建App 继承Application:


/**
 * Created by Administrator on 2016/6/1.
 * 这里完成对第三方登陆的初始化,记得要在清单文件中的主activity中配置
 */
public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // QQ和Qzone appid + appkey
        PlatformConfig.setQQZone("1105366393", "dAFotYfKXT27RGiY");

    }
}

使用:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button qq;
    private UMShareAPI mShareAPI = null;
    private SHARE_MEDIA platform = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mShareAPI = UMShareAPI.get( this );
        qq = (Button) findViewById(R.id.qq);
        qq.setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id){
            case R.id.qq:
                platform = SHARE_MEDIA.QQ;
                break;
        }
        mShareAPI.doOauthVerify(MainActivity.this, platform, umAuthListener);
    }

    private UMAuthListener umAuthListener = new UMAuthListener() {
        @Override
        public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
        //回调成功,即登陆成功后这里返回Map<String, String> map,map里面就是用户的信息,可以拿出来使用了
            Toast.makeText(getApplicationContext(), "授权成功", Toast.LENGTH_SHORT).show();
            if (map!=null){
                Log.d("auth callbacl","getting data");
                Toast.makeText(getApplicationContext(), map.toString(), Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
            Toast.makeText( getApplicationContext(), "授权失败", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel(SHARE_MEDIA share_media, int i) {
            Toast.makeText( getApplicationContext(), "授权取消", Toast.LENGTH_SHORT).show();
        }
    };
//记得要重写这个方法
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        mShareAPI.onActivityResult(requestCode, resultCode, data);
    }
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)

第一步:去对应的平台上注册app的相关信息,这一步,可参考我的另外一个篇,关于接入亲加通信云的文章     各个平台注册应用信息的地址如下:            &...
  • bingqingsuimeng
  • bingqingsuimeng
  • 2016-05-26 11:34
  • 5804

Android实现第三方登录

现在的第三方登录很普遍如QQ,微博,微信,今天我们就来实现如何接入QQ登录到我们的项目中 要想使用QQ登录我们需要到腾讯开放平台注册账号获取开发者资格地址:http://open.qq.com/...
  • cn_Jack_Chen
  • cn_Jack_Chen
  • 2017-06-18 20:20
  • 988

四种第三方登录(附源码)

实现QQ、微信、新浪微博和百度第三方登录(Android Studio)前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一...
  • csdnFML
  • csdnFML
  • 2015-10-27 12:01
  • 45686

android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)

第一步:去对应的平台上注册app的相关信息,这一步,可参考我的另外一个篇,关于接入亲加通信云的文章     各个平台注册应用信息的地址如下:            ...
  • q908555281
  • q908555281
  • 2015-11-18 10:27
  • 27110

友盟 第三方登录

友盟  第三方登录 关于基本配置问题 请移步点击打开链接。 第三方登录 首先要申请友盟的Appkey,然后在的QQ 微信、新浪 三方平台获取自己的 Appkey 和App Secret 1.集成...
  • m18860232520
  • m18860232520
  • 2017-04-26 13:21
  • 2997

umeng(友盟)实现第三方登录和分享详解之登录详解

一、简单介绍因为一个平台一个平台进行弄太麻烦,也不够统一,所以领导选择了umeng(我的内心是拒绝的),umeng的文档写的便于查找,但是比较分散,对于比较熟悉的很好用,没接触过umeng的肯定一脸懵...
  • qq_37237245
  • qq_37237245
  • 2017-08-24 20:25
  • 1515

友盟第三方登录和分享

1.进入友盟页面,点击最上面产品中的分享。 2.点击分享页面的sdk及文档下的安卓图标。 3.点击上面的SDK下载,下载里面的SDK v6.1.2,下面的选型全选,上面的图标,想分享到那个...
  • qq_35224673
  • qq_35224673
  • 2016-08-30 14:52
  • 8389

友盟的社会化分享和第三方登录集成步骤

还是那句话,这种东西并不难,按照文档来,一遍不通就再读一遍,总能通的,我这里正好列一下要点及需要注意的地方,希望能够节约大家集成的时间:官方文档地址:友盟社会化分享及三方登录链接1.到三方的开发平台注...
  • zpbshine
  • zpbshine
  • 2017-06-13 16:54
  • 317

Android使用友盟集成QQ、微信、微博等第三方登录

前言最近项目需要加入第三方分享和登录功能,之前其他项目的第三方分享和登录一直都使用ShareSDK实现的。为了统一使用友盟的全家桶,这里三方分享和登录也就选择了友盟。这里记录一下完整的集成与使用流程。...
  • Alpha58
  • Alpha58
  • 2017-07-16 20:54
  • 3040

Android 友盟集成

官网:友盟官方网站http://www.umeng.com 01. 添加新应用 注册并登陆官方网站,查看相关的集成文档。按照提示在应用管理界面进行新应用的添加。此处主要目的是为了获取AppKe...
  • wangkai1101
  • wangkai1101
  • 2016-11-02 11:03
  • 1586
    个人资料
    • 访问:61440次
    • 积分:1189
    • 等级:
    • 排名:千里之外
    • 原创:61篇
    • 转载:5篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论