78 votes

Accéder à l'identifiant 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.

47voto

Fabricio Buzeto Points 362

J'ai couru dans la même question, et ces deux liens résolu pour moi:

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

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

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

Et pour ajouter des autorisations 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 à configurer un compte : Émulateur Android - de la Difficulté à créer des comptes d'utilisateur

Fondamentalement, il est dit que vous devez créer un appareil android basé sur une API de Niveau et pas la Version du SDK (comme l'est généralement le cas).

19voto

Patrick Kafka Points 4857

La classe de gestionnaire de compte a accès à cela.

http://developer.android.com/reference/android/accounts/AccountManager.html

10voto

Rahul Devganiya Points 21

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" />
 

6voto

sebastian serrano Points 574

Vérifiez l'exemple d'adaptateur de synchronisation http://developer.android.com/resources/samples/SampleSyncAdapter/index.html.

Vous indique d'utiliser AccountManager

0voto

Balaji Points 1071

Il existe un exemple fourni par 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.

S'il vous plaît passer par mon post

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X