2016-07-14 15 views
5

Próbuję zaimplementować Dysk Google w mojej aplikacji na Androida i nie mogę połączyć się z klientem Api. I nie wiem dlaczego:Android Drive API startResolutionForResult zwraca RESULT_CANCELLED

  1. mam skonfigurowany projekt i poświadczeń w konsoli programisty do ~/.android/debug.keystore (wartości wydaje się być poprawne)
  2. Mam kopiowaniem wklejony kod z Drive for Android Documentation -> W metodzie onConnectionFailed() Dzwonię connectionResult.startResolutionForResult() jeśli connectionResult.hasResolution()
  3. W onActivityResult dopasowywania requestCode Otrzymuję resultCode == 0 (RESULT_CANCELLED) nawet po zaznaczeniu moim rachunku

Czy masz pojęcie, dlaczego? Próbowałem również dodać: do: Manifest:

<meta-data 
    android:name="com.google.android.apps.drive.APP_ID" 
    android:value="----"/> 

, który nie jest wymieniony na stronie dokumentacji, ale na niektórych stanowiskach SO.

Dzięki za pomoc

Edit:

Próbowałem również użyć enableAutoManage

mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .enableAutoManage(this, this) 
     .addApi(Drive.API) 
     .addScope(Drive.SCOPE_FILE) 
     .build(); 

zamiast manualy związku konfigurowania i connectionFailed zwrotnych:

 .addConnectionCallbacks(this) 
     .addOnConnectionFailedListener(this) 

Zwraca mi kod błędu 13 w metodzie onConnectionFailed. Na podstawie documentation wydaje się, że to powraca, gdy:

OnConnectionFailedListener przekazane enableAutoManage (FragmentActivity, GoogleApiClient.OnConnectionFailedListener), gdy użytkownik nie wybiera do ukończenia dostarczonego rozwiązania. Na przykład poprzez anulowanie okna dialogowego.

Ale nie anulowałem tego.

mam testowanie go na Nexus 5X - Android N

Odpowiedz

6

znalazłem gdzie problemem było podczas czytania coś o portfel api

ja po prostu potrzebne, aby utworzyć identyfikator klienta OAuth nie API klucz

  1. idź do Developer Console > Credentials
  2. kliknij przycisk "utwórz"> poświadczeń klienta OAuth id> Android
  3. Fill szczegóły
  4. Tworzenie
  5. Otwórz ekran OAuth zgody (na stronie Poświadczenia)
  6. Fill e-mail i nazwy produktów
  7. Zapisz

Teraz to działa!

+0

Mam ten sam problem, ale nie rozumiem, jak to naprawić. Stworzyłem ClientID, a nawet dodałem plik google-services.json do aplikacji, ale nie wydaje mi się to wystarczające. czy powinienem dodać coś w pliku manifestu? czy jest coś, co muszę zrobić w mojej aplikacji mobilnej? – arsena

+0

zaczęło działać samodzielnie ... – arsena

0

na wszelki wypadek

rozwiązanie @VizGhar ma rację jeśli brakowało się proces tworzenia tożsamości klienta. Ale otrzymuję resultCode = 0 i wszystko było w porządku z moim identyfikatorem klienta OAuth. I wreszcie I rozwiązałem go pod, więc stworzyłem SHA1 zgodnie z dokumentacją, ale uruchamiam moją aplikację w trybie debugowania (wariant Build) i zawsze miałem resultCode = 0. Po prostu przełączono na tryb zwolnienia, a problem zniknął, teraz resultCode = -1 zgodnie z oczekiwaniami.

+0

problem z tobą app/build.gradle może? Czy warianty debugowania i wydania mają taki sam identyfikator aplikacji? – VizGhar

+0

Wygląda na to, że nie udało Ci się zarejestrować SHA-1 pliku kluczy debugowania w konsoli Google? – JHH

Powiązane problemy