Android 为什么是安卓g+;revokeAccessAndDisconnect仍保留我的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()

我正在为我的应用程序使用G+登录。我有一个选项供用户断开G+帐户

 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();;
        }

    });
}