关于第三方QQ登录遇到的问题

来源:互联网 发布:淘宝如何提高购物评级 编辑:程序博客网 时间:2024/05/15 12:38

使用友盟社会分享化组件调用QQ登录逻辑会多次获取授权

public class MainActivity extends AppCompatActivity {
public ArrayList<SnsPlatform> platforms = new ArrayList<SnsPlatform>();
//以后加入新浪,微信等平台
private SHARE_MEDIA[] list = {SHARE_MEDIA.QQ};
private boolean authorize;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initPlatforms();
initView();//进入判断权限是否授权
authorize = UMShareAPI.get(this).isAuthorize(this, platforms.get(0).mPlatform);
}
private void initView() {
ImageView main_qq_login = (ImageView) findViewById(R.id.main_qq_login);
main_qq_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//调用监听回调方法
UMShareAPI.get(MainActivity.this).getPlatformInfo(MainActivity.this, platforms.get(0).mPlatform, umAuthListener);
if (authorize) {
//删除授权
UMShareAPI.get(MainActivity.this).deleteOauth(MainActivity.this, platforms.get(0).mPlatform, umAuthListener);
} else {
//添加授权
UMShareAPI.get(MainActivity.this).doOauthVerify(MainActivity.this, platforms.get(0).mPlatform, umAuthListener);
}
}
}
});
private void initPlatforms() {
platforms.clear();
for (SHARE_MEDIA e : list) {
if (!e.toString().equals(SHARE_MEDIA.GENERIC.toString())) {
platforms.add(e.toSnsPlatform());
} }
UMAuthListener umAuthListener = 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();
switch (i) {
case ACTION_AUTHORIZE:
break;
case ACTION_DELETE:
break;
case ACTION_GET_PROFILE:
Intent intent = new Intent(MainActivity.this, SecondAvtivity.class);
startActivity(intent);
break;
default:
break;
}
}
@Override
public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
}
@Override
public void onCancel(SHARE_MEDIA share_media, int i) {
}
};
//【重点】必须回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
}

0 0
原创粉丝点击