2016-01-06 11 views
6

Nella mia applicazione sto utilizzando l'integrazione di Google Plus. Inoltre, l'accesso ai dettagli dell'account Google include nome utente, immagine del profilo, ecc. Ma questi dettagli utente talvolta restituiscono valori nulli. Per favore aiutami a trovare la ragione.L'integrazione di Google + Android a volte restituisce valori nulli

Questo è il mio codice:

mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this) 
       .addConnectionCallbacks(MainActivity.this) 
       .addOnConnectionFailedListener(MainActivity.this).addApi(Plus.API,Plus.PlusOptions.builder().build()) 
       .addScope(Plus.SCOPE_PLUS_LOGIN) 
       .addScope(Plus.SCOPE_PLUS_PROFILE) 
       .addApi(AppIndex.API).build(); 

e in onConnected():

@Override 
    public void onConnected(Bundle bundle) { 

      String personName="Unknown"; 

       gmail = Plus.AccountApi.getAccountName(
         (GoogleApiClient) mGoogleApiClient).toString(); 
       try { 

        String[] id = gmail.split("@"); 
        try { 
         plusid = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient).getId(); 
        } catch (NullPointerException e) { 
         plusid = id[0]; 
        } 

        plusimage = Plus.PeopleApi 
          .getCurrentPerson((GoogleApiClient) mGoogleApiClient) 
          .getImage().getUrl().toString(); 

        plusname = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient).getDisplayName().toString(); 

       } 
       if (CheckNetworkConnection.isConnectionAvailable(MainActivity.this)) { 
       // new SocialLogin().execute(); 
       } 
       } catch (NullPointerException e) { 
        Toast.makeText(getApplicationContext(), "GMAIL" + gmail, Toast.LENGTH_SHORT).show(); 
        Toast.makeText(getApplicationContext(), "ID" +plusid , Toast.LENGTH_SHORT).show(); 
        Toast.makeText(getApplicationContext(), "NAME" + plusname, Toast.LENGTH_SHORT).show(); 
        Toast.makeText(getApplicationContext(), "IMG" + plusimage, Toast.LENGTH_SHORT).show(); 
        Toast.makeText(MainActivity.this, "Google plus account not configured correctly", Toast.LENGTH_SHORT).show(); 
        dialog.dismiss(); 
       } 
      } 

qui plusimage e plusname tornare null.Please mi aiuta a trovare la ragione.

+0

Senza fornirci alcun codice, sarà piuttosto difficile trovare da dove nel codice proviene il problema. Si prega di leggere questi documenti - http://stackoverflow.com/help/how-to-ask - prima di fare una domanda. – jeffdill2

+0

@ jeffdill2 Sorry.Question Modificato – krishna

+0

@krishna utilizzare questo esempio per riferimento potrebbe essere lavoro per voi ... https://github.com/googlesamples/google-services/blob/master/android/signin/app/src/main /java/com/google/samples/quickstart/signin/SignInActivity.java#L51-L55 –

risposta

1

Aggiungi questa riga.

Plus.PeopleApi.loadVisible(mGoogleApiClient, null).setResultCallback(this); 

Mi piace.

public void onConnected(Bundle connectionHint) {  

    Plus.PeopleApi.loadVisible(mGoogleApiClient, null).setResultCallback(this); 

    String personName="Unknown"; 
    if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) { 
     Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient); 
     String personName = currentPerson.getDisplayName(); 
     String personPhoto = currentPerson.getImage(); 
     String personGooglePlusProfile = currentPerson.getUrl(); 
    } 
} 

per ulteriori informazioni. leggi Documentation

+0

anche questo restituisce il valore nullo – krishna

+0

@krishna SHA1 è lo stesso tra la tua app e la console di google? –

+0

sì, entrambi sono uguali. – krishna

Problemi correlati