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>
qq第三方登录+回传信息
最新推荐文章于 2021-07-09 16:04:22 发布