第三方登录

先导资料

在这里插入图片描述

清单文件
uses-permission android:name=“android.permission.INTERNET”/>
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.READ_EXTERNAL_STORAGE”/>
application
android:name=“注册自己的App”**

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:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges=“orientation|keyboardHidden|screenSize”/>

build。grade

implementation files('libs/utdid4all-1.1.5.3_proguard.jar')
implementation files('libs/umeng-sharetool-6.9.4.jar')
implementation files('libs/umeng-shareboard-widget-6.9.4.jar')
implementation files('libs/umeng-share-wechat-simplify-6.9.3.jar')
implementation files('libs/umeng-share-QQ-simplify-6.9.4.jar')
implementation files('libs/umeng-share-core-6.9.4.jar')
implementation files('libs/umeng-common-1.5.4.jar')
implementation files('libs/SecurityEnvSDK-release-1.1.0.jar')

App.java

package cj.com.a1609aproject.view.activity;

import android.app.Application;

import com.umeng.commonsdk.UMConfigure;
import com.umeng.socialize.PlatformConfig;

public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
UMConfigure.init(this,“5c089159b465f59767000066”,“小米”,UMConfigure.DEVICE_TYPE_PHONE,"");
/**

  • 设置组件化的Log开关
  • 参数: boolean 默认为false,如需查看LOG设置为true
    */
    UMConfigure.setLogEnabled(true);
    PlatformConfig.setQQZone(“100424468”, “c7394704798a158208a74ab60104f0ba”);
    }
    }

MainActivity.java

package cj.com.a1609aproject.view.activity;

import android.Manifest;
import android.content.Intent;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;

import java.util.Map;

import cj.com.a1609aproject.R;

public class MainActivity extends AppCompatActivity {

private Button button;
private Button fxbutton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button  = findViewById(R.id.button1);
    fxbutton = findViewById(R.id.fx1);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //获得UMShareAPI实例
            UMShareAPI umShareAPI = UMShareAPI.get(MainActivity.this);

            //开始登录
            //第一个参数:上下文
            //第二个参数,登录哪种平台
            //第三个参数,添加回调
            umShareAPI.getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
                /**
                 * 开始登录回调
                 * @param share_media
                 */
                @Override
                public void onStart(SHARE_MEDIA share_media) {
                    Log.i("dj", "UMAuthListener onStart");
                }

                /**
                 * 登录完成
                 * @param share_media
                 * @param i
                 * @param map
                 */
                @Override
                public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                    //头像,昵称,如果拿不到,自己debug看Key是啥,再问打死
                    Log.i("dj", "UMAuthListener onComplete");

                    //获取名字
                    String name = map.get("screen_name");
                    //获取头像
                    String img = map.get("profile_image_url");

                    Log.i("dj", "name is " + name);
                    Log.i("dj", "img is " + img);
                    Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
                }

                /**
                 * 登录失败
                 * @param share_media
                 * @param i
                 * @param throwable
                 */
                @Override
                public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
                    Log.i("dj", "UMAuthListener onError" + throwable.getLocalizedMessage());
                }

                /**
                 * 登录取消
                 * @param share_media
                 * @param i
                 */
                @Override
                public void onCancel(SHARE_MEDIA share_media, int i) {
                    Log.i("dj", "UMAuthListener onCancel");
                }
            });
        }
    });
    fxbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //分享用的图片
            UMImage image = new UMImage(MainActivity.this, R.drawable.umeng_socialize_qq);
            new ShareAction(MainActivity.this)
                    //分享的标题
                    .withText("hello")
                    //分享的图片
                    .withMedia(image)
                    //分享到哪,这里面只写了QQ,如有需要在后面添加
                    .setDisplayList(SHARE_MEDIA.QQ)
                    //设置回调
                    .setCallback(shareListener)
                    //打开分享面板
                    .open();
        }
    });
    checkPermission();
}
public void checkPermission(){
    if(Build.VERSION.SDK_INT>=23){
        //QQ需要申请写入权限
            String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS,Manifest.permission.WRITE_APN_SETTINGS};
            ActivityCompat.requestPermissions(this,mPermissionList,123);
         }else{
            //UMShareAPI.get(this).getPlatformInfo(this, SHARE_MEDIA.QQ,authListener);
                  }
    }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
UMAuthListener authListener = new UMAuthListener() {
    /**
     * @desc 授权开始的回调
     * @param platform 平台名称
     */
    @Override
    public void onStart(SHARE_MEDIA platform) {

    }

    /**
     * @desc 授权成功的回调
     * @param platform 平台名称
     * @param action 行为序号,开发者用不上
     * @param data 用户资料返回
     */
    @Override
    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {

        Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show();
        finish();
    }

    /**
     * @desc 授权失败的回调
     * @param platform 平台名称
     * @param action 行为序号,开发者用不上
     * @param t 错误原因
     */
    @Override
    public void onError(SHARE_MEDIA platform, int action, Throwable t) {

        Toast.makeText(MainActivity.this, "失败:" + t.getMessage(),                                  Toast.LENGTH_LONG).show();
    }

    /**
     * @desc 授权取消的回调
     * @param platform 平台名称
     * @param action 行为序号,开发者用不上
     */
    @Override
    public void onCancel(SHARE_MEDIA platform, int action) {
        Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();
    }
};

private UMShareListener shareListener = new UMShareListener() {
    /**
     * @descrption 分享开始的回调
     * @param platform 平台类型
     */
    @Override
    public void onStart(SHARE_MEDIA platform) {
        Log.i("dj", "UMShareListener onStart");
    }

    /**
     * @descrption 分享成功的回调
     * @param platform 平台类型
     */
    @Override
    public void onResult(SHARE_MEDIA platform) {
        Log.i("dj", "UMShareListener onResult");
    }

    /**
     * @descrption 分享失败的回调
     * @param platform 平台类型
     * @param t 错误原因
     */
    @Override
    public void onError(SHARE_MEDIA platform, Throwable t) {
        Log.i("dj", "UMShareListener onError");
    }

    /**
     * @descrption 分享取消的回调
     * @param platform 平台类型
     */
    @Override
    public void onCancel(SHARE_MEDIA platform) {
        Log.i("dj", "UMShareListener onCancel");
    }
};

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值