7

Ich verbinde einen GoogleApiClient zur Verwendung mit Google Drive. Ich baue den Client wie folgt aus:So löschen Sie das GoogleApiClient-Standardkonto und die Anmeldeinformationen

 GoogleApiClient.Builder(this) 
       .addApi(Drive.API) 
       .addScope(Drive.SCOPE_FILE) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .build(); 

Meine Erfahrung ist, dass die erste Mal, wenn eine Verbindungsanfrage für diesen Kunden gemacht wird, das AccountPicker Dialog angezeigt wird und die Zustimmung Bildschirm für Google Drive. Wenn der Benutzer ein Konto auswählt, zustimmt und die Verbindung erfolgreich hergestellt wird, speichert der AccountManager oder eine verwandte Funktion das ausgewählte Konto als Standardkonto und die Anmeldeinformationen (OAuth-Token?) Für den Laufwerksbereich. Bei nachfolgenden Verbindungsanforderungen werden die gespeicherten Werte als Annehmlichkeit für den Benutzer verwendet, und der Benutzer sieht die Benutzeroberfläche für die Kontoauswahl oder Zustimmung nicht.

Für Entwicklungstests möchte ich in der Lage sein, das Standardkonto und die gespeicherten Anmeldeinformationen zu löschen, damit ich meine Verbindungsfehlerauflösungsverarbeitung durchführen kann. Ich habe keinen Weg gefunden, dies zu tun. Ich habe versucht, dies ohne Erfolg:

String driveScope = "https://www.googleapis.com/auth/drive.file"; 
String tokenType = "oauth2:" + driveScope; 

AccountManager.get(this).invalidateAuthToken(
    GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, tokenType); 

Antwort

9

Es klingt wie Sie clearDefaultAccountAndReconnect() auf Ihrem GoogleApiClient löschen die ausgewählten Kontoinformationen aufrufe sollten.

+2

Ja, das hat funktioniert. Vielen Dank. Seufzen - so viele Klassen, so viele Methoden, so wenig Zeit. –

+1

Dies ist keine gute Lösung. GoogleApiClient muss bereits verbunden sein, ansonsten wird eine Ausnahme ausgelöst. Es gibt viele Anwendungsfälle, wenn Sie möchten, dass ein Benutzer vor jeder Nutzung von GoogleApiClient ein Konto auswählt, z. vor jeder Verbindung(). – f470071