Accès à Google Account Id / username via Android

comment accédez-vous au Code D'identification de Compte Google de L'utilisateur? Je construis une application qui appellera un service web pour stocker des données et je veux identifier l'identité de la personne qui soumet les données.

68
demandé sur Wayne Conrad 2010-02-11 18:38:42

7 réponses

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

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

qui présente le code pour récupérer les comptes associés au téléphone. Fondamentalement, vous aurez besoin de quelque chose comme ceci:

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

et d'ajouter les permissions dans le AndroidManifest.xml

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

en outre, si vous utilisez L'émulateur le lien suivant vous aidera à le configurer avec un compte: émulateur Android-difficulté à créer des comptes d'utilisateur

essentiellement, il est dit que vous devez créer un appareil android basé sur un niveau API et non la Version SDK (comme est généralement fait).

41
répondu Fabricio Buzeto 2017-05-23 12:26:32

cette méthode pour obtenir Google nom D'utilisateur:

 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 cet appel de méthode ....

et obtenir L'utilisateur Google dans Gmail id::

 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 Ajouter 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
répondu Rahul Devganiya 2014-09-21 13:39:37

extraire des informations de profil pour un utilisateur inscrit Utilisez le GoogleSignInResult.méthode getSignInAccount pour demander des informations de profil pour l'utilisateur actuellement connecté. Vous pouvez appeler la méthode getSignInAccount après que l'intention de connexion a réussi.

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();
3
répondu shweta jariya 2017-05-09 11:33:44
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
répondu Dixit Panchal 2015-09-16 06:12:21

utilise ces lignes:

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

la longueur des comptes de tableaux est toujours 0.

1
répondu Erik Johansson 2018-04-09 14:50:12

il y a un échantillon de google, qui liste les comptes google existants et génère un token d'accès lors de la sélection , vous pouvez envoyer ce token d'accès au serveur pour récupérer les détails connexes à partir de lui pour identifier l'utilisateur.

vous pouvez également obtenir l'email id du token d'accès , pour que vous avez besoin de modifier la portée

s'il vous Plaît aller à travers Mon Post

0
répondu Balaji 2017-05-23 12:34:37
String name = android.os.Build.USER;

if (!TextUtils.isEmpty(name)) {
    nameEdit.setText(name);
}
-3
répondu Ahmadullah Saikat 2015-04-22 17:10:46