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.
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).
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" />
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();
Utilisé ces lignes:
AccountManager manager = AccountManager.get(this);
Account[] accounts = manager.getAccountsByType("com.google");
la longueur des comptes de groupe est toujours 0.
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
}
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