我正在为我的应用程序使用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 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();;
}
});
}
accManager.log 将应用返回登录界面。
Plus.AccountApi.clearDefaultAccount(googleApiClient)
;清除用户帐户并验证,因为当我点击g +登录时我需要再次选择帐户。
但 Plus.AccountApi.revokeAccessAndDisconnect(googleApiClient)
不会撤销我的应用权限,因为当我点击同一帐户的g +登录时,只要求我选择帐户但不要求获得许可。
当我以新帐户登录时,请求我的g +权限
同时卸载和reinstall
我的应用仍然保持我的g +权限。
有没有人遇到这个问题?非常感谢任何帮助。我跟着https://developers.google.com/+/mobile/android/sign-in
答案 0 :(得分:0)
我找到了答案
buildGoogleApiClient应为
private GoogleApiClient buildGoogleApiClient() {
return new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API, Plus.PlusOptions.builder().build())
.addScope(Plus.SCOPE_PLUS_LOGIN)
.addScope(new Scope("email"))
.build();
}