Obtenir un nom d'utilisateur de Google Plus dans Android

J'ai intégré Google plus avec mon application Android. Tout fonctionne bien, je suis également connecté à Google plus, mais je ne peux pas obtenir le nom de l'utilisateur actuel connecté.

public void onConnected(Bundle connectionHint) { String personName="Unknown"; if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) { Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient); personName = currentPerson.getDisplayName(); } } 

Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) cette méthode renvoie toujours null .

  • NineOldAndroids: set view pivot
  • Anciennes versions de Android NDK
  • Le fournisseur de contacts Android n'atteint que les contacts téléphoniques avec tous les emails
  • Plusieurs fichiers d'application Android .pk à partir d'un seul code source
  • Dépendances Android: fichiers apklib vs aar
  • Fragment doit être une classe publique statique pour être correctement recréée à partir de l'état de l'instance
  • Toute aide sera appréciée. Merci.

  • Ce qui provoque des erreurs "expression constante requise" pour les valeurs R.id.xxx générées dans les instructions de commutation?
  • Android ListView avec différentes mises en page pour chaque ligne
  • Comment puis-je supprimer le bouton ExpandableListView?
  • Correction du capteur de paysage inversé Nexus 5x dans une application de prévisualisation de caméra Android
  • Qu'est-ce que "platformBuildVersionCode" dans AndroidManifest.xml?
  • Emulateur Android SDK avec résolution Full HD
  • 5 Solutions collect form web for “Obtenir un nom d'utilisateur de Google Plus dans Android”

    Vous devez ajouter cette ligne:

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

    Comme ça:

     public void onConnected(Bundle connectionHint) { /* This Line is the key */ Plus.PeopleApi.loadVisible(mGoogleApiClient, null).setResultCallback(this); String personName="Unknown"; if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) { Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient); personName = currentPerson.getDisplayName(); ......... } } 

    Pour moi, la cause de cet appel qui a révélé nulle était que l'API Google+ n'était pas activée pour ma application. Accédez à https://console.developers.google.com , sélectionnez votre projet et activez l'API Google+ pour fonctionner!

    Dans mon cas, le null est revenu parce que j'ai ajouté cette ligne:

    AddScope (nouvelle portée (Scopes.EMAIL))

      mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Plus.API) .addScope(new Scope(Scopes.PROFILE)) //.addScope(new Scope(Scopes.EMAIL)) .build(); 

    ================= ACTUALISATION ======================== Les étendues doivent être définies comme ci-dessous:

     mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Plus.API) .addScope(Plus.SCOPE_PLUS_PROFILE) .addScope(Plus.SCOPE_PLUS_LOGIN) .build(); 

    Vérifiez que vous avez généré à la fois des débogues et des ID de client de production par les magasins clés SHA1. Il s'affiche dans l'onglet API et Auth -> Credentials de votre projet .

    La configuration de OAuth 2.0 pour la documentation Android indique:

    Dans un terminal, exécutez l'utilitaire Keytool pour obtenir l'empreinte SHA1 pour votre certificat public de fichier .apk signé numériquement.

    … exemple pour debug-keystore …

    Important: lorsque vous vous préparez à lancer votre application à vos utilisateurs, suivez ces étapes et créez une nouvelle ID de client OAuth 2.0 pour votre application de production. Pour les applications de production, utilisez votre propre clé privée pour signer le fichier .apk de l'application de production.

    J'ai essayé beaucoup d'approches, mais j'étais toujours confronté au même problème. Enfin, dans le fichier build.gradle de l'application, j'ai constaté que mon applicationId n'était pas le même que le nom du package dans Credentials. J'ai réparé cela et tout a fonctionné comme un charme.

    Ainsi, assurez-vous:

    • ApplicationId in build.gradle
    • Nom du package dans AndroidManifest.xml
    • Nom du package dans Credentials

    Sont tous les mêmes.

    J'espère que ça aide quelqu'un.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.