2015-06-30 21 views
7

Google Drive ile kullanmak için bir GoogleApiClient bağlarım. Böyle müşteri inşa: Bir bağlantı isteği bu müşteri için yapılmış ilk kez AccountPicker iletişim sunulan ve Google Drive için rıza ekran olduğunuGoogleApiClient Varsayılan Hesabı ve Kimlik Bilgileri Nasıl Temizlenir

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

Benim deneyim oldu. Kullanıcı bir hesap seçerse, onaylarsa ve bağlantı başarıyla tamamlanırsa, AccountManager veya bazı ilgili işlevler seçilen hesabı varsayılan hesap olarak kaydeder ve Sürücü kapsamı için kimlik bilgilerini (OAuth jetonları?) Kaydeder. Sonraki bağlantı taleplerinde, kullanıcıya kolaylık sağlamak amacıyla, kaydedilen değerler kullanılır ve kullanıcı hesap seçimi veya onayı için kullanıcı arayüzünü görmez.

Geliştirme sınaması için, varsayılan hesap ve kayıtlı kimlik bilgilerini temizlemek istiyorum, böylece bağlantı hatası çözümleme işlemimi uygulayabiliyorum. Bunu yapmanın bir yolunu bulamadım. Başarı olmadan bu çalıştı: Seçili hesap bilgilerini temizlemek için GoogleApiClient üzerine clearDefaultAccountAndReconnect() çağırmalıdır gibi

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

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

cevap

9

geliyor.

+2

Evet, işe yaradı. Teşekkürler. Sigh - çok sınıf, çok fazla yöntem, çok az zaman. –

+1

Bu iyi bir çözüm değil. GoogleApiClient'in zaten bağlanması gerekiyor, aksi halde bir istisna kaldırılıyor. Bir kullanıcının GoogleApiClient'in her kullanımından önce bir hesap seçmesini istediğinizde birçok kullanım durumu vardır. her bağlantıdan önce(). – f470071