qq第三方登录+回传信息

public class MainActivity extends AppCompatActivity {


    private ImageView userPhoto;
    private TextView userName, userCity;
    private TextView tuichu;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        userName = (TextView) findViewById(R.id.name);
        userPhoto = (ImageView) findViewById(R.id.image);
        userCity = (TextView) findViewById(R.id.city);
        tuichu = (TextView) findViewById(R.id.tuichu);

        userPhoto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                QQLogin.login(MainActivity.this, new QQLogin.QQLoginCallBack() {
                    @Override
                    public void success(User user) {

                        Glide.with(MainActivity.this).load(user.getUserPhotoUrl()).into(userPhoto);
                        userName.setText(user.getUserName());
                        userCity.setText(user.getCity());

                    }
                });
            }
        });
        initQQ();
    }


    private void initQQ() {
        tuichu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                QQLogin.exitLogin(MainActivity.this, new QQLogin.QQExitCallBack() {
                    @Override
                    public void exit() {
                        userPhoto.setImageResource(R.mipmap.ic_launcher);
                        userName.setText("");
                        userCity.setText("");
                    }
                });
            }
        });

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        MyApp.getInstance().getUMShareAPI().onActivityResult(requestCode, resultCode, data);
    }

}







 
public class QQLogin {
    public interface QQLoginCallBack {
        void success(User user);
    }

    public interface QQExitCallBack {
        void exit();
    }

    public static void login(Activity activity, final QQLoginCallBack callBack) {
        if (MyApp.getInstance().getUser() != null) {
            Toast.makeText(activity, "已登录", Toast.LENGTH_SHORT).show();
            return;
        }
        MyApp.getInstance().getUMShareAPI().getPlatformInfo(activity, 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) {
                if (i == 0) {

                } else if (i == 2) {
                    String imageUrl = map.get("iconurl");
                    String name = map.get("name");
                    String city = map.get("city");

                    User user = new User(imageUrl, name, city);
                    MyApp.getInstance().setUser(user);
                    if (callBack != null) {
                        callBack.success(user);
                    }
                }
            }

            @Override
            public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {

            }

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

            }
        });
    }

    public static void exitLogin(Activity activity, final QQExitCallBack callBack) {
        if (MyApp.getInstance().getUser() == null) {
            Toast.makeText(activity, "未登录", Toast.LENGTH_SHORT).show();
            return;
        }
        MyApp.getInstance().getUMShareAPI().deleteOauth(activity, 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) {
                MyApp.getInstance().setUser(null);
                if (callBack != null) {
                    callBack.exit();

                }
            }

            @Override
            public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {

            }

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

            }
        });
    }
}








public class User {
    private String userPhotoUrl;
    private String userName;
    private String city;

    public User(String userPhotoUrl, String userName, String city) {
        this.userPhotoUrl = userPhotoUrl;
        this.userName = userName;
        this.city = city;
    }

    public String getUserPhotoUrl() {
        return userPhotoUrl;
    }

    public void setUserPhotoUrl(String userPhotoUrl) {
        this.userPhotoUrl = userPhotoUrl;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.qq_image.MainActivity">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:src="@mipmap/ic_launcher"/>

    <TextView
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Android Studio"
     />

    <TextView
        android:id="@+id/city"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="android.studio@android.com"/>


    <TextView
        android:id="@+id/tuichu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:textSize="16sp"
        android:layout_marginTop="50dp"
        android:text="退出"
        android:gravity="center_horizontal"/>
</LinearLayout>


 
需要添加的权限
<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.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>



<meta-data
    android:name="UMENG_APPKEY"
    android:value="561cae6ae0f55abd990035bf">
</meta-data>






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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值