0
는 구글 DOCX에 따르면 우리는 두 가지 방법Google LogIn에서 로그 아웃하는 방법은 무엇입니까?
- SingOut이
- RevokeAccess
나는이 방법을 하나
초 구글 등의 방법을 제공해야합니다
public void revokeAccess() {
GoogleSignInOptions gso = getGoogleSignInOptions();
mGoogleApiClient = getGoogleApiClient(gso);
if (mGoogleApiClient.isConnected()) {
Auth.GoogleSignInApi.revokeAccess(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
Logger.log(GoogleImplementation.class, "signOut:onResult:" + status, Logger.ERROR);
}
});
} else {
Logger.log(GoogleImplementation.class, "GoogleApiClient is not connected yet.", Logger.ERROR);
}
}
그러나 매번 호출하려고 할 때마다 오류가 발생했습니다.
나는 지금까지 이것에 the same issue on stack하고 따라 발견? 아니면 내가 그 결론을 오해하니?GoogleApiClient는 아직 연결되지 않았습니다. 나는 따라서이 객체를 저장하는 방법을 내가 할 수있는 상담자
LogIn()
을 만든 동일한 개체에revokeAccess()
를 호출 할 필요가 이해
내가 뭘 잘못하고 있니?
편집
@NonNull
public GoogleApiClient getGoogleApiClient(GoogleSignInOptions gso) {
return new GoogleApiClient.Builder(context)
.enableAutoManage(activity, listenerConnection) <-----
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
}
각기 다른 활동에서 편집 2
public void revokeAccess() {
GoogleSignInOptions gso = getGoogleSignInOptions();
mGoogleApiClient = getGoogleApiClient(gso);
if (mGoogleApiClient.isConnected()) {
Auth.GoogleSignInApi.revokeAccess(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
Logger.log(GoogleImplementation.class, "signOut:onResult:" + status, Logger.ERROR);
}
});
} else {
mGoogleApiClient.connect();
Logger.log(GoogleImplementation.class, "GoogleApiClient is not connected yet.", Logger.ERROR);
Auth.GoogleSignInApi.revokeAccess(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
Logger.log(GoogleImplementation.class, "signOut:onResult:" + status, Logger.ERROR);
}
});
}
}
당신은 하나의 활동에 로그인 한 다음 다른 사람에게 가서 mGoogleApiClient.connected()를 만들어야한다는 것을 의미합니까? –
정확히,하지만 일단 당신이 당신의 계정을 선택하고 나면 UI에 표시된 어떤 것도 automaticcaly를 연결하지 않고 automanage thne를 사용하여 이것을 할 수 있습니다. –
내 질문을 편집했습니다. '<------'라고 표시된 줄이 있는데,'mGoogleApiClient.connected()'대신 사용해야한다는 뜻입니까? 하지만 난 이미 그것을 사용하고 여전히 오류가 발생했습니다 –