友盟QQ第三方登录分享

友盟QQ登录分享:

效果图:

1、导入jar包到libs( 右击 add as library)

2、自定义类继承Application并重写onCreate()方法(记得清单文件注册.name)

引入该方法

UMConfigure.init(this,"5a12384aa40fa3551f0001d1","umeng",UMConfigure.DEVICE_TYPE_PHONE,"");
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");

实现图:记得在清单文件配置 

 

3、清单文件配置即可

<!--权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--"第三方配置"-->
<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="tencent100424468" />
    </intent-filter>
</activity>
<activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<meta-data
    android:name="UMENG_APPKEY"
    android:value="5c07d385f1f556e5f90003c4">
</meta-data>

4、写布局逻辑代码

step布局:

 step代码:

 /**
  *注册监听
  *重写点击事件方法
  */

findViewById(R.id.qqlogin).setOnClickListener(this);
findViewById(R.id.qqshare).setOnClickListener(this);

@Override
public void onClick(View v) {
    switch (v.getId()) {
        /**
         * qq登录
         */
        case R.id.qqlogin:
            UMShareAPI umShareAPI = UMShareAPI.get(MainActivity.this);
        /**
         * 登录授权监听
         */
            umShareAPI.getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
                @Override
                public void onStart(SHARE_MEDIA share_media) {

                }
                @Override
                public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                    Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                    
                  /**
                   * 登录信息集合
                   * Log.i("Tag",map+"");         
                   */
                    String ion = map.get("profile_image_url");
                    String name = map.get("screen_name");
                    
                    Toast.makeText(MainActivity.this, "昵称:" + name, Toast.LENGTH_SHORT).show();
                    Toast.makeText(MainActivity.this, "头像:" + ion, Toast.LENGTH_SHORT).show();
                   /** 
                    *ion_qq是图片控件,只是为了验证登录成功后获取到你的QQ头像 
                    */
                    Glide.with(MainActivity.this).load(s).into(ion_qq);
                }
                @Override
                public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {

                }
                @Override
                public void onCancel(SHARE_MEDIA share_media, int i) {

                }
            });
            break;
        /**
         * qq分享
         * 分享监听
         */
        case R.id.qqshare:
   
            UMShareListener umShareListener = new UMShareListener() {
                @Override
                public void onStart(SHARE_MEDIA share_media) {

                }
                @Override
                public void onResult(SHARE_MEDIA platform) {
                    Log.d("plat", "platform" + platform);
                    Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
                }
                @Override
                public void onError(SHARE_MEDIA platform, Throwable t) {
                    Toast.makeText(MainActivity.this, platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
                    Log.i("xxx", "onError: " + t);
                }
                @Override
                public void onCancel(SHARE_MEDIA platform) {
                    Toast.makeText(MainActivity.this, platform + " 分享取消了", Toast.LENGTH_SHORT).show();
                }
            };
            /**
             * 友盟图片
             */
            UMImage umImage = new UMImage(MainActivity.this, R.mipmap.ic_launcher);
            new ShareAction(MainActivity.this)
                    .setPlatform(SHARE_MEDIA.QQ)//传入平台
                    .withMedia(umImage)//分享图片
                    .setCallback(umShareListener)//回调监听器
                    .share();
            break;
    }
}
 

 必须重写(如果用fragment的话,记得在依付的Activity里面重写就行,fragment不执行onActivityResult方法)


@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(MainActivity.this).onActivityResult(requestCode, resultCode, data);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值