web-dev-qa-db-fra.com

Accéder à l'ID de compte Google / nom d'utilisateur via Android

Comment accédez-vous à l'identifiant de compte Google/à l'identifiant de l'utilisateur dans le code? Je construis une application qui appellera un service Web pour stocker des données et je souhaite identifier l'identité de la personne qui soumet les données.

69
KawBoy

J'ai rencontré le même problème et ces deux liens ont été résolus pour moi:

Le premier est celui-ci: Comment puis-je récupérer le compte Google connecté sur Android téléphones?

Qui présente le code permettant de récupérer les comptes associés au téléphone. En gros, vous aurez besoin de quelque chose comme ça:

AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] list = manager.getAccounts();

Et pour ajouter les autorisations dans le fichier AndroidManifest.xml

<uses-permission Android:name="Android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission Android:name="Android.permission.AUTHENTICATE_ACCOUNTS"></uses-permission>

De plus, si vous utilisez l'émulateur, le lien suivant vous aidera à le configurer avec un compte: émulateur Android - Problème de création de comptes utilisateur

En gros, il est indiqué que vous devez créer un périphérique Android) basé sur un niveau d'API et non sur la version du SDK (comme c'est généralement le cas).

45
Fabricio Buzeto

Cette méthode pour obtenir le nom d'utilisateur Google:

 public String getUsername() {
    AccountManager manager = AccountManager.get(this);
    Account[] accounts = manager.getAccountsByType("com.google");
    List<String> possibleEmails = new LinkedList<String>();

    for (Account account : accounts) {
        // TODO: Check possibleEmail against an email regex or treat
        // account.name as an email address only for certain account.type
        // values.
        possibleEmails.add(account.name);
    }

    if (!possibleEmails.isEmpty() && possibleEmails.get(0) != null) {
        String email = possibleEmails.get(0);
        String[] parts = email.split("@");
        if (parts.length > 0 && parts[0] != null)
            return parts[0];
        else
            return null;
    } else
        return null;
}

simple cette méthode appel ....

Et obtenir un utilisateur Google dans l'identifiant Gmail ::

 accounts = AccountManager.get(this).getAccounts();
    Log.e("", "Size: " + accounts.length);
    for (Account account : accounts) {

        String possibleEmail = account.name;
        String type = account.type;

        if (type.equals("com.google")) {
            strGmail = possibleEmail;

            Log.e("", "Emails: " + strGmail);
            break;
        }
    }

Après avoir ajouté la permission dans le manifeste;

<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />

<uses-permission Android:name="Android.permission.GET_ACCOUNTS" />
8
Rahul Devganiya

Récupérer les informations de profil d'un utilisateur connecté Utilisez la méthode GoogleSignInResult.getSignInAccount pour demander des informations de profil pour l'utilisateur actuellement connecté. Vous pouvez appeler la méthode getSignInAccount une fois que l'objectif de connexion a abouti.

GoogleSignInResult result = 
Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String personName = acct.getDisplayName();
String personGivenName = acct.getGivenName();
String personFamilyName = acct.getFamilyName();
String personEmail = acct.getEmail();
String personId = acct.getId();
Uri personPhoto = acct.getPhotoUrl();
4
shweta jariya

Utilisé ces lignes:

AccountManager manager = AccountManager.get(this);
Account[] accounts = manager.getAccountsByType("com.google");

la longueur des comptes de groupe est toujours 0.

2
Erik Johansson
if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
  Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
  String userid=currentPerson.getId(); //BY THIS CODE YOU CAN GET CURRENT LOGIN USER ID
}
2
Dixit Panchal

Il existe un exemple de google, qui répertorie les comptes Google existants et génère un jeton d'accès lors de la sélection. Vous pouvez envoyer ce jeton d'accès au serveur pour en extraire les détails associés afin d'identifier l'utilisateur.

Vous pouvez également obtenir l’identifiant email du jeton d’accès, pour cela vous devez modifier le SCOPE.

Veuillez passer par My Post

0
Balaji