Я включил Google Sign In в свой пример проекта.Вход, получение данных профиля работает хорошо.API выхода также работает хорошо.Проблема заключается в том, что когда я пытаюсь отозвать доступ с помощью метода revokeAccess (), исключение выдается с сообщением 4, найдите приведенную ниже трассировку стека исключений.
com.google.android.gms.common.api.ApiException: 4:
at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source)
at com.google.android.gms.common.internal.zai.zaf(Unknown Source)
at com.google.android.gms.common.internal.zaj.onComplete(Unknown Source)
at com.google.android.gms.common.api.internal.BasePendingResult.zaa(Unknown Source)
at com.google.android.gms.common.api.internal.BasePendingResult.setResult(Unknown Source)
at com.google.android.gms.auth.api.signin.internal.zzn.zzf(Unknown Source)
at com.google.android.gms.auth.api.signin.internal.zzt.dispatchTransaction(Unknown Source)
at com.google.android.gms.internal.auth-api.zzd.onTransact(Unknown Source)
at android.os.Binder.execTransact(Binder.java:565)
Исходный код:
private void signOut() {
showProgress();
mSignInClient.signOut().addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
final Exception taskException = task.getException();
if (taskException == null) {
revokeAccess();
} else {
showToast(getString(R.string.sign_out_failure_message) + taskException.getLocalizedMessage());
}
}
});
}
private void revokeAccess() {
mSignInClient.revokeAccess().addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
final Exception taskException = task.getException();
if (taskException == null) {
hideProgress();
finish();
} else {
hideProgress();
taskException.printStackTrace();
showToast(getString(R.string.disconnect_failure_message) + taskException.getLocalizedMessage());
}
}
});
}