Android 为什么是安卓g+;revokeAccessAndDisconnect仍保留我的g+;准许
我正在为我的应用程序使用G+登录。我有一个选项供用户断开G+帐户Android 为什么是安卓g+;revokeAccessAndDisconnect仍保留我的g+;准许,android,oauth,google-plus,Android,Oauth,Google Plus,我正在为我的应用程序使用G+登录。我有一个选项供用户断开G+帐户 case R.id.action_disconnect: disconnectDialog = new ProgressDialog(this); disconnectDialog.setMessage(getResources().getString(R.string.disconnect_dialog)); disconnectDialog.show()
case R.id.action_disconnect:
disconnectDialog = new ProgressDialog(this);
disconnectDialog.setMessage(getResources().getString(R.string.disconnect_dialog));
disconnectDialog.show();
googleApiClient = buildGoogleApiClient();
googleApiClient.connect();
private GoogleapClient BuildGoogleapClient(){
返回新的GoogleAppClient.Builder(此)
.addConnectionCallbacks(此)
.addOnConnectionFailedListener(此)
.addApi(Plus.API,Plus.PlusOptions.builder().build())
.addScope(新范围(“电子邮件”))
.build();
}
未连接的公共空间(捆绑包){
Plus.AccountApi.clearDefaultAccount(GoogleAppClient);
Plus.AccountApi.revokeAccessAndDisconnect(GoogleAppClient).setResultCallback(new ResultCallback()){
@凌驾
公共void onResult(状态){
googleApiClient.disconnect();
if(disconnectDialog!=null)
disconnectDialog.disclose();
accManager.Log();;
}
});
}
accManager.log将应用程序返回登录屏幕
Plus.AccountApi.clearDefaultAccount(GoogleAppClient)
;清除用户帐户并进行验证,因为我需要在单击g+登录时再次选择帐户
但是Plus.AccountApi.revokeAccessAndDisconnect(GoogleAppClient)
不会撤销我的应用权限,因为当我使用相同的帐户单击g+登录时,只会要求我选择帐户,而不要求权限
当我以新帐户应用程序登录时,请询问我的g+权限
同时,卸载和重新安装我的应用程序仍保留我的g+权限。
有人遇到过这个问题吗?任何帮助都将不胜感激。我跟着我找到了答案
BuildGoogleAppClient应该是
private GoogleapClient BuildGoogleapClient(){
返回新的GoogleAppClient.Builder(此)
.addConnectionCallbacks(此)
.addOnConnectionFailedListener(此)
.addApi(Plus.API,Plus.PlusOptions.builder().build())
.addScope(Plus.SCOPE\u Plus\u登录)
.addScope(新范围(“电子邮件”))
.build();
}
private GoogleApiClient buildGoogleApiClient() {
return new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API, Plus.PlusOptions.builder().build())
.addScope(new Scope("email"))
.build();
}
public void onConnected(Bundle bundle) {
Plus.AccountApi.clearDefaultAccount(googleApiClient);
Plus.AccountApi.revokeAccessAndDisconnect(googleApiClient).setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
googleApiClient.disconnect();
if (disconnectDialog != null)
disconnectDialog.dismiss();
accManager.Log();;
}
});
}