2013-05-28 16 views
9

Ho un'app per Android e sto implementando la condivisione seguendo le istruzioni these.Google+ Share Smesso di funzionare

Sono riuscito a farlo funzionare. Sono tornato ad esso il giorno dopo e ottengo questo output in logcat:

G+ on connection failed ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{422d8470: [email protected]}} 

ho tripla controllato la console api, tolto il mio IDcliente OAuth e l'ingresso di nuovo fresco. Questo non l'ha risolto Qualche idea su cosa posso esaminare per risolverlo?

risposta

10

è possibile ottenere il risultato di collegamento SIGN_IN_REQUIRED per una serie di motivi, ad esempio .:

  • se si chiama PlusClient.clearDefaultAccount();.
  • se si disconnette l'app su http://plus.google.com/apps o chiamando PlusClient.revokeAccessAndDisconnect();.
  • se l'app richiede ambiti di autorizzazione in aggiunta a quelli richiesti in precedenza.

Per SIGN_IN_REQUIRED, ConnectionResult ricevuto contiene un PendingIntent che può essere utilizzato per risolvere il problema. Nel campione in the instructions you're following il codice di esempio gestisce l'errore in onConnectionFailed con il seguente codice:

@Override 
public void onConnectionFailed(ConnectionResult result) { 
    if (result.hasResolution()) { 
     try { 
      result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR); 
     } catch (SendIntentException e) { 
      mPlusClient.connect(); 
     } 
    } 
    // Save the result and resolve the connection failure upon a user click. 
    mConnectionResult = result; 
} 

result.startResolutionForResult() visualizzerà un selettore account o la finestra di dialogo autorizzazioni per risolvere i problemi di cui sopra, e restituire il controllo onActivityResult, ad esempio:

@Override 
protected void onActivityResult(int requestCode, int responseCode, Intent intent) { 
    if (requestCode == REQUEST_CODE_RESOLVE_ERR && responseCode == RESULT_OK) { 
     mConnectionResult = null; 
     mPlusClient.connect(); 
    } 
} 

A questo punto la chiamata a PlusClient.connect() dovrebbe riuscire.

+1

Ho sostituito onConnectionFailed con la tua versione e funziona bene ora, grazie – serenskye

+0

@Lee, soluzione corretta, ma ricevendo un messaggio di toast "errore interno occured" .Hai un'idea di questo.Grazie in anticipo ... – jagdish

+0

@jagdish - prova abilitando la registrazione dettagliata e vedere cosa appare in LogCat. Eseguilo sulla riga di comando: adb shell setprop log.tag.GooglePlusPlatform VERBOSE – Lee

Problemi correlati