2016-07-14 56 views
5

Ich versuche, Google Drive zu meiner Android App zu implementieren, und ich kann nicht einmal eine Verbindung zum Api Client herstellen. Und ich weiß nicht, warum:Android Drive API startResolutionForResult gibt RESULT_CANCELLED zurück

  1. Ich habe konfiguriert Projekt und Anmeldeinformationen in Entwickler-Konsole für ~/.android/debug.keystore (Werte scheint korrekt zu sein)
  2. Ich habe Kopie kleistert Code aus Drive for Android Documentation -> In Verfahren onConnectionFailed() ich rufe connectionResult.startResolutionForResult() wenn connectionResult.hasResolution()
  3. In onActivityResult zum Abgleichen requestCode ich erhalte resultCode == 0 (RESULT_CANCELLED), auch wenn ich wähle mein Konto

Hast du eine Idee warum? Ich habe auch versucht hinzuzufügen:

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

in Manifest, das nicht auf Dokumentationsseite erwähnt, aber auf einige SO Beiträgen.

Vielen Dank für Hilfe

Edit:

Ich habe auch enableAutoManage

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

statt manualy Projektierungs-Verbindung zu nutzen versucht und connectionFailed Rückrufe:

 .addConnectionCallbacks(this) 
     .addOnConnectionFailedListener(this) 

Es gibt mir Fehlercode 13 in onConnectionFailed Methode zurück. Basierend auf documentation es scheint, dass diese zurückkehrt, wenn:

OnConnectionFailedListener zu enableAutoManage (FragmentActivity, GoogleApiClient.OnConnectionFailedListener) übergeben, wenn der Benutzer nicht choses eine bereitgestellte Auflösung zu vervollständigen. Zum Beispiel durch Abbrechen eines Dialogs.

Aber ich habe es nicht abgebrochen.

Ich teste es auf Nexus 5-fach - Android N

Antwort

6

Ich fand, wo das Problem war, während etwas über Brieftasche api Lesen

Ich habe gerade benötigt OAuth-Client-ID nicht API-Schlüssel

erstellen
  1. zum Developer Console > Credentials
  2. Klicken Sie auf "erstellen Anmeldeinformationen"> OAuth-Client-ID> Android
  3. die Details Füllen
  4. erstellen
  5. öffnen OAuth-Zustimmungsbildschirm (auf Seite Credentials)
  6. Fill E-Mail und Produktnamen
  7. Speichern

Jetzt funktioniert es!

+0

Ich habe das gleiche Problem, aber nicht zu verstehen, wie es zu beheben ist. Ich habe ClientID erstellt und sogar Google-services.json-Datei zur App hinzugefügt, aber es scheint nicht genug zu sein. sollte ich etwas in der Manifest-Datei hinzufügen? oder muss ich irgendetwas in meiner mobilen App machen? – arsena

+0

begann es auf eigene Faust zu arbeiten ... – arsena

0

JUST IN CASE

@VizGhar Lösung ist richtig, wenn Sie Client-ID Erstellungsprozess verpasst werden. Aber ich erhalte resultCode = 0 und alles war in Ordnung mit meiner OAuth-Client-ID. Und schließlich löste ich es, so erstellte ich SHA1 wie in der Dokumentation, aber ich habe meine App im Debug-Modus (Build-Variante) und hatte immer resultCode = 0. Nur wechselte in den Freigabemodus und das Problem ist weg, jetzt resultCode = -1 wie erwartet.

+0

Problem mit Ihnen app/build.gradle vielleicht? Haben Ihre Debug- und Release-Varianten dieselbe Anwendungs-ID? – VizGhar

+0

Hört sich an, als hätten Sie es versäumt, den SHA-1 Ihres Debug-Keystores in der Google-Konsole zu registrieren? – JHH