Podłączam GoogleAiClient do użytku z Dyskiem Google. Buduję klienta tak:Jak wyczyścić konto domyślne GoogleApiClient i poświadczenia
GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
Moje doświadczenie jest takie, że po raz pierwszyżądanie połączenia jest dla tego klienta, dialogowe AccountPicker przedstawiono i ekran zgoda na Dysku Google. Jeśli użytkownik wybierze konto, zgodzi się i połączenie zakończy się pomyślnie, AccountManager lub inna powiązana funkcja zapisuje wybrane konto jako konto domyślne i poświadczenia (tokeny OAuth?) Dla zakresu Dysk. W kolejnych żądaniach połączenia, dla wygody użytkownika, zapisane wartości są używane, a użytkownik nie widzi interfejsu użytkownika do wyboru konta lub zgody.
Dla celów testowania rozwoju chciałbym mieć możliwość wyczyszczenia domyślnego konta i zapisanych poświadczeń, aby móc wykonywać przetwarzanie moich niepowodzeń połączenia. Nie znalazłem sposobu, aby to zrobić. Próbowałem to bezskutecznie:
String driveScope = "https://www.googleapis.com/auth/drive.file";
String tokenType = "oauth2:" + driveScope;
AccountManager.get(this).invalidateAuthToken(
GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, tokenType);
Tak, to działało. Dzięki. Westchnienie - tyle zajęć, tyle metod, tak mało czasu. –
To nie jest dobre rozwiązanie. GoogleApiClient musi już być podłączony, inaczej zostanie zgłoszony wyjątek. Istnieje wiele przypadków użycia, gdy użytkownik chce wybrać konto przed każdym użyciem GoogleApiClient, np. przed każdym connect(). – f470071